Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJS:ng模型未绑定到ng选中复选框_Angularjs_Angularjs Ng Model_Angularjs Ng Checked - Fatal编程技术网

AngularJS:ng模型未绑定到ng选中复选框

AngularJS:ng模型未绑定到ng选中复选框,angularjs,angularjs-ng-model,angularjs-ng-checked,Angularjs,Angularjs Ng Model,Angularjs Ng Checked,在提出这个问题之前,我提到了这一点 如果在html端将ng checked计算为true,则不会更新ng模型。我不能重复上面问题中的建议,因为我必须为每个复选框使用一些样式 这是我为说明我的问题而创建的plunker 要查看我想要什么,请打开控制台,然后单击Submit按钮。请不要勾选任何复选框 提前谢谢 ngModel和ngChecked不能一起使用 ngChecked需要一个表达式,所以说ng checked=true,基本上就是说默认情况下复选框总是被选中的 您应该能够只使用ngModel

在提出这个问题之前,我提到了这一点

如果在html端将ng checked计算为true,则不会更新ng模型。我不能重复上面问题中的建议,因为我必须为每个复选框使用一些样式

这是我为说明我的问题而创建的plunker

要查看我想要什么,请打开控制台,然后单击Submit按钮。请不要勾选任何复选框

提前谢谢

ngModel和ngChecked不能一起使用

ngChecked需要一个表达式,所以说ng checked=true,基本上就是说默认情况下复选框总是被选中的

您应该能够只使用ngModel,它与模型上的布尔属性相关联。如果您想要其他东西,那么您要么需要使用现在只支持字符串的ngTrueValue和ngFalseValue,要么编写自己的指令

你到底想做什么?如果您只想在默认情况下选中第一个复选框,则应更改您的模型-item1:true

编辑:您不必提交表单来调试模型的当前状态,顺便说一句,您只需将{{testModel}}转储到HTML或HTML中即可。此外,您的ngModel属性可以简化为ng model=testModel.item1


您可以使用ng value true告诉angular您的ng模型是一个字符串

如果我添加了官方文件中所示的额外引号,则我只能获得ng true value工作-

您可以使用ng repeat将迭代的内容的值传递给选中的ng,然后使用ng类根据结果应用样式


我最近做了一些类似的事情,它对我很有效。

可以声明为InNG init也在变为现实

<input type="checkbox" name="test" ng-model="testModel['item1']" ̶n̶g̶-̶c̶h̶e̶c̶k̶e̶d̶=̶"̶t̶r̶u̶e̶"̶ />
    Testing<br />
<input type="checkbox" name="test" ng-model="testModel['item2']" /> Testing 2<br />
<input type="checkbox" name="test" ng-model="testModel['item3']" /> Testing 3<br />
<input type="button" ng-click="submit()" value="Submit" />
您可以选择第一个和此处显示的对象true、false、flase

ng model和ng checked指令不应一起使用 从文档中:

NGCHECK 如果ngChecked中的表达式为truthy,则在元素上设置checked属性

请注意,此指令不应与ngModel一起使用,因为这可能导致意外行为

-

而是从控制器设置所需的初始值:

$scope.testModel = { item1: true };
使用ng模型时,不需要检查ng。如果要在HTML表单上执行CRUD,只需为创建模式创建一个与数据绑定期间的编辑模式一致的模型:

创建模式:仅具有默认值的模型 编辑模式:来自数据库的模型
然后,无论是编辑模式还是创建模式,都可以始终使用ng模型与数据库同步。

ng checked由表达式计算为true。为了表示ng模型未链接,我在那里使用了true。在启动控制器时,我希望取消选中所有复选框。在一些ajax请求之后,我计算ng checked以选中复选框。这是当我的ng模型没有更新时,您不应该使用ngChecked。您的模型很好,只需在ajax回调中设置testModel.item1=true,然后调用$scope.$apply来更新您的视图。我们刚刚犯了一个错误,使用ng checked代替ng模型。。。再也不会了!根据注释中的注释,thisngChecked指令不应与ngModel一起使用,因为这可能会导致意外行为。@Langdon i在这个问题上被耽搁了大约几个小时。。您的提示$scope.$apply解决了我的问题。非常感谢。ngInit只有几个合适的用途。此指令可能被滥用,以便在模板中添加不必要的逻辑量。瞧,谢谢,这是我的解决办法!
<input type="checkbox" name="test" ng-model="testModel['item1']" ̶n̶g̶-̶c̶h̶e̶c̶k̶e̶d̶=̶"̶t̶r̶u̶e̶"̶ />
    Testing<br />
<input type="checkbox" name="test" ng-model="testModel['item2']" /> Testing 2<br />
<input type="checkbox" name="test" ng-model="testModel['item3']" /> Testing 3<br />
<input type="button" ng-click="submit()" value="Submit" />
$scope.testModel = { item1: true };
$scope.dataModel = {
   isItemSelected: true,
   isApproved: true,
   somethingElse: "Your default value"
}
$scope.dataModel = getFromDatabaseWithSameStructure()