我想要一个指令,它把ngrange取代为[ - 3,3]到ng-options。角度不正确的编译选项
不幸的是下面的解决方案是不好
<html lang="pl">
<head>
<title>Its directive range</title>
</head>
<body>
<div ng-app="app">
<div ng-controller="AppCtrl">
<select ng-model="value" range="[-3, 3]"></select>
<span>{{value}}</span>
</div>
</div>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script>
<script type="text/javascript">
angular.module('directives', []);
angular.module('app', ['directives']);
angular.module('app').controller('AppCtrl', function($scope) {
$scope.value = 2;
});
angular.module('directives').directive('range', function($compile) {
return {
restrict: 'A',
scope: {
range: '='
},
link: function(scope, elem, attr) {
scope.options = [];
for(var i = scope.range[0]; i <= scope.range[1]; ++i) {
scope.options.push(i);
}
elem.attr('ng-options', 'o as o for o in options track by o');
elem.removeAttr('range');
$compile(elem)(scope);
}
};
});
</script>
</body>
后创建NG选项标签选择包含期权价值= “号:2”,而不是选择值2 ...
我创建plunker你的代码,但不能复制上述问题,呈现的HTML是: – Andriy
plunker:http://plnkr.co/edit/W0Uz9t4bnGh6feVqBYP4?p=preview – Andriy
我在控制器中设置$ scope.value = 2,但它没有选择选项...并创建了值为“number:2”的选项... – smiady