Angularjs-向select clobbers和ng选项添加属性指令
我正在尝试向使用ng选项的select添加属性指令:Angularjs-向select clobbers和ng选项添加属性指令,select,angularjs,directive,Select,Angularjs,Directive,我正在尝试向使用ng选项的select添加属性指令: <select ng-model="item.Subcategory" ng-options="subcategory.Name as subcategory.Name for subcategory in GetSubcategories(item.Category)" monitor></select> 指令它似乎在工作,因为我看到每个使用该指令的项目都有一个“我存在”,但它选择丢失了它的选项 有了该指令,我可以
<select ng-model="item.Subcategory" ng-options="subcategory.Name as subcategory.Name for subcategory in GetSubcategories(item.Category)" monitor></select>
指令它似乎在工作,因为我看到每个使用该指令的项目都有一个“我存在”,但它选择丢失了它的选项
有了该指令,我可以在HTML中看到这是select的唯一选项:
<option value="?" selected="selected"></option>
与此相反,当不使用指令时:
<option value="0" selected="selected">Cats</option>
<option value="1">Dogs</option>
猫
狗
为什么我的指令会破坏ng选项
谢谢。这里可能有几个问题,其中任何一个都可能是问题的原因 根据报告: 如果同一元素上的多个指令请求一个新范围,则只创建一个新范围 您正在指令上创建一个新的隔离作用域,该作用域可能会覆盖其他指令的作用域,包括ng选项 另外,您应该记住,controller参数创建了一个与其他指令共享的新控制器: 控制器构造函数。控制器在预链接阶段之前实例化,并与其他指令共享(请参见require属性)。这允许指令彼此通信并增强彼此的行为 除非您希望使用您的指令与其他指令共享数据,否则您可能应该避免创建控制器
您的指令无法在简单的链接函数中完成它需要完成的任务,有什么原因吗?您是否看到任何错误?我认为ng选项也需要独立的作用域(每个元素只能有一个),没有错误。ng选项在没有my指令的情况下可以正常工作。指令中控制器的可能副本不仅仅用于与其他指令共享数据。它们的功能与常规应用程序控制器几乎相同:为指令提供行为。根据定义,link函数是应该进行DOM操作的地方。
<option value="0" selected="selected">Cats</option>
<option value="1">Dogs</option>