【发布时间】:2014-09-08 13:10:43
【问题描述】:
我正在编写一个通用方法来从服务中获取一些数据并填充到函数中传递的动态属性名称中。该值确实使用 angular.element 分配分配给文本框,但不会填充到模型中。以下是代码。
<div class="input-group">
<input class="form-control" id="ImgRollover" name="ImgRollover" ng-model="contentEntity.imgRollover" placeholder="" readonly="readonly" type="text">
<div class="input-group-btn">
<button class="btn" type="button" ng-click="pickImage('contentEntity.imgRollover')">
</button>
</div>
这是我的控制器方法,它在内部使用发送回承诺的服务
$scope.pickImage = function (attrModel) {
ImageSelector.selectImage().then(
function (value) {
//angular.element("#" + attrModel).val(value);
$scope[attrModel] = value;
});
};
attrModel 是范围对象 contentEntity 中的属性名称,但属性名称只能通过方法参数动态知道。
【问题讨论】:
-
ng_model - 是错字吗?必须是 ng-model
-
当使用
ng-model绑定时不需要使用val()设置值(使用正确的语法) -
您正在选择一个不存在的 id 为 'contentEntity.imgRollover' 的元素
-
所以添加两个参数...pickImage('contentEntity', 'imgRollover')
-
@Vikram 如果您需要使用未知的对象深度,我提出了其他建议
标签: javascript angularjs angularjs-scope