在angularjs中用scope绑定ng-model的一部分
Bind part of ng-model with scope in angularjs
在我的应用程序中,我有一个颜色数组,我想创建一个带有复选框的颜色列表。
var app = angular.module('app',[]);
app.controller('mainCtrl',function($scope){
$scope.colors = ['red','blue','green','yellow'];
});
所以我创建了一个ng-repeat
来创建一个列表:
<body ng-controller="mainCtrl">
<ul>
<li ng-repeat="c in colors">
<input type="checkbox" ng ng-true-value="{{c}}" ng-false-value=""/> {{c}}
</li>
</ul>
</body>
现在我需要将每个复选框的ng-model
绑定到f.tags.red
或f.tags.blue
,所以我将代码更改为如下所示:
<li ng-repeat="c in colors">
<input type="checkbox" ng-model="f.col.{{c}}" ng-true-value="{{c}}" ng-false-value=""/> {{c}}
</li>
,但这使我的应用程序坏了。所以如何修复这个ng-model
和ng-true-value
,我也创建了这个jsbin。由于
这里有一些地方出了问题。一般来说,在使用expressions
的Angular属性中,你不应该使用{{x}}
,而应该只使用x
本身。所以,你的ng-model
不应该是f.col.{{c}}
,而是f.col.blue
和f.col.red
等。现在,在javascript中,做a.b
和a['b']
是相同的,所以在这种情况下,因为c
是一个字符串,正确的模型是f.col[c]
。true-value
也是一样,它也应该是c
。
最后,为了使示例工作,您需要实际创建维护模型的对象(在本例中为$scope.f.col
)。工作示例如下:http://jsbin.com/citupepa/1/edit
下面是选择颜色的工作演示:jsbin
<ul>
<li ng-repeat="c in colors">
<input type="checkbox" ng-model="f.col[c]" ng-true-value="true" ng-false-value="false"/> {{c}}
</li>
已选颜色:{{f.col}}
相关文章:
- 从 Javascript 中设置 ng-model name
- Toggle Switch在包含ng model和ng repeat之后不进行切换
- 在Angularjs中,我如何使用ng repeat、ng model和ng click来动态更改内容
- 当与之关联的 ng-model 为 false 时,Angularjs 复选框值不会取消选中
- ng-model 绑定到选择标签生成的空默认值
- 对象不能在angularjs ng-model中访问
- 为什么 HTML 中的 Value 属性在与 AngularJS 中的 ng-model 一起使用时不起作用
- ng-repeat不绑定ng-model对象数组
- AngularJS:ng-model 绑定在使用 jQuery 更改时不会更新
- 选择/选项 ng-model 未绑定 ng-selected
- Angular ng-model 将数据作为数组发送到 rails-api
- 为什么 AngularJS 在使用 ng-model 时不会在文本框上设置长度属性
- AngularJS:Ng:init-如何分配Ng:model
- 在指令中使用 ng-model 和 ng-repeat
- 使用 angularjs 访问控制器中的 ng-model 数据
- 如何在 Angularjs 中为 ng-model 增加价值
- 如何在 AngularJS 中将 ng-model 值检索到控制器
- 从角度“ng-model”选择元素中选择第一个选项,带有一个按钮
- 使用 ID 更新文本区域值,而不是在 AngularJs 中使用 ng-model
- 在angularjs中用scope绑定ng-model的一部分