我有这个指令
app.directive('countrySelect', function (Country) {
return {
templateUrl: 'template/directives/countryselect.html',
restrict: 'E',
scope: {
selectedValue: '='
},
link: function (scope) {
Country.success(function (data) {
scope.countries = data;
});
}
}
});
我的模板
<select chosen
data-placeholder="Country"
search-contains="true"
ng-model="selectedValue"
ng-options="name as country.name for country in countries">
<option value=""></option>
</select>
我已将模型设置为selectedValue但我在尝试console.log时只返回未定义。
这是我使用指令的HTML
<country-select selected-value="custCtrl.editForm.country"></country-select>
和控制台记录变量custCtrl.editForm.country只是给出了undefined。
我想&#34; =&#34;双向数据绑定? 我错过了什么?
谢谢
答案 0 :(得分:0)
ng-options
语法错误。该语法中的第一个术语表示选项值,因此是ng-model
将镜像的值。您已经指定了一个名为name
的变量,它实际上是未定义的。它应该是country.name
:
ng-options="country.name as country.name for country in countries"
(第二个country.name
指定选项标签,即下拉列表中显示的文字。这不需要与第一个词匹配,但通常会匹配。)
DEMO: Here is a fiddle you can play around with
在其中,您将看到只要模型发生变化,手表就会从控制器和指令登录到控制台。控制器还在HTML中显示所选值。 (我将$scope
添加到手表的控制器中,但您在生产中不需要它。)