我无法弄清楚为什么我无法绑定到选择元素 有我的代码:
<select ng-model="site" ng-change="getAll()">
<option value="SG1">SG1</option>
<option value="PZ1">PZ1</option>
<option value="NE1">NE1</option>
</select>
getAll()发出关于“网站”的提醒但var永远不会更新。 除了在getAll()
之外,$ scope.site是神经使用 $scope.getAll = function () {
alert($scope.site);
}
如果我将$ scope.site设置为一个值,则显示但不会更新
编辑: 我忘了一个大细节...... 选择是使用ng-include指令
显示的<section id="sectionLeft" ng-include="nav[navId]">
</section>
答案 0 :(得分:1)
ng-include
创建一个新的范围,原型继承自您的控制器。因此,您最初是从控制器中读取所选选项,但是当select元素写入新选择的选项时,它最终会写入继承的范围。
您可以改为绑定到对象。
控制器:
$scope.data = { site: "SG1" };
$scope.getAll = function() {
alert($scope.data.site);
}
模板:
<select ng-model="data.site" ng-change="getAll()">
<option value="SG1">SG1</option>
<option value="PZ1">PZ1</option>
<option value="NE1">NE1</option>
</select>
有关详细信息,请参阅this answer。
如果您不喜欢切换到对象,请查找controller as
语法并直接绑定到控制器而不是$scope
。
答案 1 :(得分:0)