【发布时间】:2014-08-16 04:51:30
【问题描述】:
我有一个带有空白选项和其他一些选项的选择框。这些选项不是使用 ngOptions 指令生成的,因为它们是在服务器端生成的(使用 Symfony 表单)。
在某些情况下,我想取消选择选择框的选定值。以便选择空白选项。但我无法让它发挥作用。选择框不会更新。
我创建了一个jsfiddle 来显示问题。
html
<div ng-controller="MyCtrl">
<form name="form">
<select ng-model="foo.hero" name="foo[hero]" my-directive="">
<option value=""></option>
<option value="1">Batman</option>
<option value="2">Superman</option>
<option value="3">Spiderman</option>
</select>
</form>
<p>Selected: {{ foo.hero }}</p>
</div>
javascript
var myApp = angular.module('myApp',[]);
function MyCtrl($scope) {
$scope.foo = {hero: '2'};
}
myApp.directive('myDirective', function($timeout) {
return {
require: ['ngModel', '?form'],
link: function(scope, element, attrs, ctlrs) {
$timeout(function() {
var modelController = ctlrs[0];
modelController.$setViewValue('');
});
}
};
});
【问题讨论】:
-
并非如此。我的问题是,我必须更改指令中的选定值。
-
好的,
ng-init不适合,因为该值稍后会发生变化?您需要在某个时候执行此操作later? In that case I'd probably write anng-timeout` 反映ng-init功能但将其包装在$timeout中...实际上@Delta 在下面执行...
标签: javascript angularjs angularjs-directive