完全在<select>指令内使用ng-model不会创建/更新模型

时间:2015-11-27 14:48:00

标签: angularjs angularjs-directive

我想制定一个可以插入许多页面的指令。它将包含多个表单控件。当他们的值改变时,页面会做出反应。 所以我的第一步是一个包含选择框的指令。它的值由API设置,并且工作正常,但是当我更改所选值时,不会在范围上创建ng模型。 所以,我从未见过ng-model set。我假设我正在以错误的方式晃动某些东西但却无法弄清楚它应该是什么......这意味着我无法看到它的价值或者因为它不存在而对它做出响应。 我试图做一些不可能的事情,或者只是做错了吗? var app = angular.module('anapp',[]); app.controller('acontroller',function($ scope){   $ scope.text ='some text'; }); app.directive('myDirective',function(){   返回{             限制:'E',             替换:true,             范围: {},             模板:'&lt; div&gt;&lt; select ng-options =“通过thing.id选择事物跟踪事物的事物。”ng-model =“selectedThing”&gt;&lt; / select&gt;&lt; p&gt;选择的事物是{{selectedThing}}&lt; / p&gt;&lt; / div&gt;',             link:function(scope){                 //想象这来自API                 scope.things = [{id:1,name:'one'},{id:2,name:'two'}];             }         };   }); &lt; script src =“https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js”&gt;&lt; / script&gt; &lt; div ng-app =“anapp”ng-controller =“acontroller”&gt;      &LT;我的指导性&GT;&LT / MY-指令&GT;      {{文本}}   &LT; / DIV&GT;

1 个答案:

答案 0 :(得分:2)

您的ng-options字符串错误。我不相信有一个关键词select

根据它的外观,你想要的是能够说出选择它作为那个&#39;。

那就是

//Selecting entire object
ng-options="thing as thing.name for thing in things track by thing.id"
//Selecting just id
ng-options="thing.id as thing.name for thing in things track by thing.id"

Related Docs