ngOptions在自定义指令中应用了两次
ngOptions applied twice in custom directive
我正在创建一个指令,用自定义的标签替换普通的a select标签:
angular.module('myModule').directive('mySelect', function() {
return {
restrict: 'AE',
require: 'ngModel',
templateUrl: 'mySelect.html'
replace: true,
scope: true,
controller: ['$scope', function($scope) { $scope.options = [1,2,3,4,5] }],
link: function(scope, element, attrs, ctrl) {
// No updates to scope here
}
}
});
模板看起来像:
<select ng-model="value" ng-options="(x | sprintf:'%02d') for x in options"></select>
出于某种奇怪的原因,ng-options
创建的选项被应用了两次。生成的HTML看起来像:
<select my-select ng-options="(x | sprintf:'%02d') for x in options" class="...">
<option value="?" selected="selected"></option>
<option value="0">01</option>
<option value="1">02</option>
<option value="2">03</option>
<option value="3">04</option>
<option value="4">05</option>
<option value="?" selected="selected"></option>
<option value="0">01</option>
<option value="1">02</option>
<option value="2">03</option>
<option value="3">04</option>
<option value="4">05</option>
</select>
有人知道发生了什么事吗?
您应该像这个一样使用div而不是<select my-select></select>
<div my-select></div>
指令mySelect
返回另一个select
指令,因此您将得到错误Error: Multiple directives [select, select]
,因为HTML将呈现为
<select ng-options="x for x in options" ng-model="value" my-select=""></select>
演示
相关文章:
- 为什么Highchart在我的rails应用程序中加载了两次?(未捕获的Highcharts错误#16)
- javascript_include_tag :应用程序在开发环境中加载 JavaScript 两次
- 在express应用程序中,请求参数两次附加到URL
- isHidden函数要求我在应用响应显示时单击两次
- 按钮启动应用程序,但不会启动两次
- AngularJS控制器中的函数只调用了两次[Phonegap应用程序]
- AngularJs 基本应用程序执行两次
- 如果我在常规语法旁边包含供应商前缀,转换是否会应用两次
- Ember-cli 创建/初始化应用程序.js两次
- ngOptions在自定义指令中应用了两次
- Backbone.js模型urlRoot网络应用程序文件夹名称被追加了两次
- javascript在Rails 3.1基于资产的应用程序中包含了两次
- Mobilefirst Ionic ng启动应用程序点击两次
- js应用程序重新加载,调用渲染两次
- Chrome应用,Javascript,文件系统->createWriter→Onwriteend被调用两次而不是一次(
- 为什么在我的应用中弹出警告显示两次
- ReactJS渲染应用程序两次为服务器端渲染应用程序?(重复代码)
- Highcharts on rails应用程序每次加载时渲染两次
- PhoneGap应用程序不会连续两次查询服务器
- jQuery验证:为什么提交按钮必须点击两次在我的Rails应用程序