作为后续仍对此plunker:错误:不分配模型表达:未定义(指令:childOne)
如果我回顾在Chrome控制台中选择时在儿童中的项目1,我得到以下错误:
错误:不分配模型表达:未定义(指令:childOne)
我完全困惑,因为指令元素是一个元素,而不是一个属性,并在指令本身中被指定为这样。
作为后续仍对此plunker:错误:不分配模型表达:未定义(指令:childOne)
如果我回顾在Chrome控制台中选择时在儿童中的项目1,我得到以下错误:
错误:不分配模型表达:未定义(指令:childOne)
我完全困惑,因为指令元素是一个元素,而不是一个属性,并在指令本身中被指定为这样。
TL; DR; - 问题是,属性是蛇案和作用域定义将它们转换为camelCase。
好你:
app.directive('childOne', function() {
return {
restrict: "E",
replace: true,
scope: {
labelName: "@",
selectPhrase: "@",
ngModel: "=",
options: "=",
},
template: '<span><div class="local-label">{{labelName}}: </div><div style="width:15px;display:inline-block;"></div>' +
'<span style="display: inline-block;"><select ng-model="ngModel" ng-options="o.Id as o.Name for o in options | orderBy:\'Name\'" class="formRequire" required><option value="" selected="selected">{{selectPhrase}} ...</option></select>' +
'</span></div></span>'
};
})
的问题是,您绑定ngModel但孩子 - 一个元素它并没有提供一个值。如果我评论那部分它似乎工作正常。
看来,当你有“=”在范围绑定这意味着强制,属性也从蛇的情况下转化到驼峰在JavaScript世界
PS定义时:这是真正的错误是有点含糊
<child-one
label-name="Child 1" select-phrase="Please Select Clutch Type"
selectModel="ClutchType.Id" options="clutchTypes" >
</child-one>
selectModel="ClutchType.Id"
应该已经
select-model="ClutchType.Id"
谢谢Liviu,我真的不应该使用那个笨蛋,因为我没有创建它,所以我不能编辑它。我改变了重拳,所以我可以显示更正。 – Bye 2013-04-30 16:03:33
谢谢关于camelCase转换的通知。在我的情况下,与下划线属性的名称是问题。 – 2013-09-10 10:39:45
有没有办法解决这个问题,所以它不是不可分配的? – ajbraus 2014-12-08 02:44:26