2014-10-27 75 views
0

我有一个场景,我认为这是逻辑的,但似乎角度不支持它。AngularJS,选择并绑定到值

所以,我在范围/控制器的用户类型的列表作为对象的数组是这样的:

$scope.userTypes = [{text : "Buyer", value : "1"}, 
    {text : "Vendor", value : "2"}, 
    {text : "Buyer/Vendor", value : "9"}]; 

$scope.user = new User(globalSelectedUserType); 

用户在哪里这样的定义:

function User(userType) { 
    this.userType = userType; 
    this.isAdminUser = false; 
    this.isActive = true; 
    this.roleDisabled = true; 
}; 

而且我想使select元素具有来自userTypes的选项列表,该值将值绑定到“value”属性,并将文本绑定到“text”属性,并将选择值绑定到数组对象的“value”属性,从而允许用户从代码中设置值。

所以当我创建使用此

$scope.user = new User("9"); 

应该初始化选择与“买家/供应商”选自代码的用户。

阅读angular和ng选项中select元素的文档看起来是不可能的。 我想这

<select name="usertypedata" id="UsersTypeData" ng-model="user.userType" 
      ng-disabled="user.roleDisabled" ng-options="usertype.value as usertype.text for usertype in userTypes track by usertype.value"> 
     </select> 

,当我们选择的选项,我想通过NG-模型

+0

删除跟踪,此问题通常发生在使用跟踪_select as_('usertype.value as')语法时,您不需要两者。 http://jsbin.com/suniriteqo/2/edit – PSL 2014-10-27 16:34:44

+0

我做到了。它没有工作,它使select/options中的值作为数组的索引 – 2014-10-27 16:35:27

+0

适用于我http://jsbin.com/suniriteqo/4/edit您正在使用哪种角度的版本?或者在演示中复制您的问题。 – PSL 2014-10-27 16:36:20

回答

0

填充只有“值”属性我有这两个答案。 首先回答是PSL在他之前的评论中提出的建议。 第二个答案是

,而不是结合NG选项到一个数组,我把它绑定到一个对象,它工作得很好

更详细地说明,这也许是因为我没有做,从开始全面的角度解决方案结束。 我正在使用angular来填充/和控制html页面/表单的行为。

但后来,我做了正常的HTML /表单提交,将提交表单中的所有数据。 和通常的表单/提交,将使用选择/选项值来提交该值,而不是ng-model

但ng-model对于我以编程方式选择选项很重要。