我有一个带有一些md-select下拉列表的表单,它试图与我的角度控制器中的作用域对象绑定。
html看起来像这样:
<div id="horizontal_form_category" class="row">
<div class="col-md-2 col-lg-2" data-ng-repeat="r in categories[general]" dir="rtl">
<md-input-container>
<label> {{ r.name }} </label>
<md-select ng-model="formObject[r.name]" class="md-no-underline">
<md-option ng-repeat="option in r.values" ng-value="option "> {{ option }} </md-option>
</md-select>
</md-input-container>
</div>
</div>
控制器有一个对象$scope.formObject = {};
的定义(虽然它没有它可以工作)
但是,不幸的是,我的控制器中的$ scope.formObject对象保持为空。 什么可能导致这种奇怪行为的想法?我有一些正常的bootstrap组件,其中ng-model编写相同并且工作得很好。
由于
答案 0 :(得分:1)
这有什么用? - CodePen
true 作为$ watch的最后一个参数检查对象formObject中的更改。
标记
<div ng-controller="AppCtrl" ng-cloak="" ng-app="MyApp">
<md-input-container>
<label> Options </label>
<md-select ng-model="formObject['Options']" class="md-no-underline">
<md-option ng-repeat="option in options" ng-value="option "> {{ option }} </md-option>
</md-select>
</md-input-container>
</div>
JS
angular.module('MyApp',['ngMaterial'])
.controller('AppCtrl', function($scope) {
$scope.options = ["Earth", "Saturn", "Jupiter"];
$scope.$watch("formObject", function () {
console.log($scope.formObject);
}, true)
});
答案 1 :(得分:0)
显然没有任何错误。 我的表单的md-select是空的,因此formObject是空的。 我开始放置值的那一刻,formObject被填充,一次一个字段,只包含已设置的字段。 我添加了一个默认值,现在一切都正确显示,只是为了确保这是“错误”。 回想起来,这个bevahiour实际上为我节省了一些代码,所以我采用了它:) 要感谢@camden_kid answer获得$ watch提示,帮助我在几秒钟内弄明白。