Angularjs 角度并选择-设置默认值

Angularjs 角度并选择-设置默认值,angularjs,Angularjs,我正在努力从控制器中的值设置选择框的默认值 我的控制器 controller.item = {name: "bar1", value:1} controller.items = [{name: "bar0", value:0},{name: "bar1", value:1}] 我的html是 <p>{{controller.item}}</p> <select ng-model="controller.item" ng-options="item.name for

我正在努力从控制器中的值设置选择框的默认值

我的控制器

controller.item = {name: "bar1", value:1}
controller.items = [{name: "bar0", value:0},{name: "bar1", value:1}]
我的html是

<p>{{controller.item}}</p>
<select ng-model="controller.item" ng-options="item.name for item in controller.items" >
</select>
但是,对于已经设置了值的场景,这是不正确的


谢谢

您需要将
选择的
属性添加到
选择的
中相应的
选项
元素

您需要将
选择的
属性添加到
选择的
选项

中相应的
元素
选择中相应的
选项
元素

您需要将
选择的
属性添加到
选择中相应的
选项
元素

您的
选项
有点不对劲,语法为
值作为数组中项的文本
——因此将值设置为

<select ng-model="controller.item" ng-options="item as item.name for item in controller.items" >
</select>

您的
ngOptions
有点不正确,语法是
数组中项的文本值
-因此将值设置为

<select ng-model="controller.item" ng-options="item as item.name for item in controller.items" >
</select>

您的
ngOptions
有点不正确,语法是
数组中项的文本值
-因此将值设置为

<select ng-model="controller.item" ng-options="item as item.name for item in controller.items" >
</select>

您的
ngOptions
有点不正确,语法是
数组中项的文本值
-因此将值设置为

<select ng-model="controller.item" ng-options="item as item.name for item in controller.items" >
</select>
HTML:

ng options
指令中设置默认选项时,必须通过引用。无法创建新对象。报告说:

默认情况下,ngModel通过引用而不是值监视模型

HTML:

ng options
指令中设置默认选项时,必须通过引用。无法创建新对象。报告说:

默认情况下,ngModel通过引用而不是值监视模型

HTML:

ng options
指令中设置默认选项时,必须通过引用。无法创建新对象。报告说:

默认情况下,ngModel通过引用而不是值监视模型

HTML:

ng options
指令中设置默认选项时,必须通过引用。无法创建新对象。报告说:

默认情况下,ngModel通过引用而不是值监视模型


使用您的符号Angular正在尝试将
item.name
与整个
item
对象匹配

item to match: {name: "bar1", value:1}
value to match againist: 'bar1'

'bar1' != {name: "bar1", value:1} // Nothing selected by default since no matching ocurrs
为了正确匹配,您应该尝试使用:



在这里,您将
控制器.item
定义为您的模型,它将与ng选项中的整个item对象进行检查,但标记为
item.name
(因为您在ng选项声明中定义了它),因此您的选择将把objects name属性呈现为选项,而不是整个对象,但它将使用符号重新匹配整个对象

Angular正在尝试将
项.name
与整个
对象匹配

item to match: {name: "bar1", value:1}
value to match againist: 'bar1'

'bar1' != {name: "bar1", value:1} // Nothing selected by default since no matching ocurrs
为了正确匹配,您应该尝试使用:



在这里,您将
控制器.item
定义为您的模型,它将与ng选项中的整个item对象进行检查,但标记为
item.name
(因为您在ng选项声明中定义了它),因此您的选择将把objects name属性呈现为选项,而不是整个对象,但它将使用符号重新匹配整个对象

Angular正在尝试将
项.name
与整个
对象匹配

item to match: {name: "bar1", value:1}
value to match againist: 'bar1'

'bar1' != {name: "bar1", value:1} // Nothing selected by default since no matching ocurrs
为了正确匹配,您应该尝试使用:



在这里,您将
控制器.item
定义为您的模型,它将与ng选项中的整个item对象进行检查,但标记为
item.name
(因为您在ng选项声明中定义了它),因此您的选择将把objects name属性呈现为选项,而不是整个对象,但它将使用符号重新匹配整个对象

Angular正在尝试将
项.name
与整个
对象匹配

item to match: {name: "bar1", value:1}
value to match againist: 'bar1'

'bar1' != {name: "bar1", value:1} // Nothing selected by default since no matching ocurrs
为了正确匹配,您应该尝试使用:



在这里,您将
控制器.item
定义为您的模型,它将与ng选项中的整个item对象进行检查,但标记为
item.name
(因为您在ng选项声明中定义了它),因此您的选择将把objects name属性呈现为选项,而不是整个对象,但它将对整个对象进行匹配

这里的问题是
控制器。项与
控制器不同。项[1]

我相信有人会进一步解释为什么这比我做得更好,但这与比较JavaScript中的对象有关

是另一篇文章的链接

您要做的是在数组中找到所需的对象,并将其设置为controller.item

app.controller('MainCtrl', function($scope) {
  var controller = this;
  var tempItem = {name: "bar1", value:1};
  controller.items = [{name: "bar0", value:0},{name: "bar1", value:1}]

  for(var i = 0; i < controller.items.length; i++){
    if(controller.items[i].name == tempItem.name) {
      controller.item = controller.items[i];
    }
  }
});

您这里的问题是
控制器。项
控制器不同。项[1]

我相信有人会进一步解释为什么这比我做得更好,但这与比较JavaScript中的对象有关

是另一篇文章的链接

您要做的是在数组中找到所需的对象,并将其设置为controller.item

app.controller('MainCtrl', function($scope) {
  var controller = this;
  var tempItem = {name: "bar1", value:1};
  controller.items = [{name: "bar0", value:0},{name: "bar1", value:1}]

  for(var i = 0; i < controller.items.length; i++){
    if(controller.items[i].name == tempItem.name) {
      controller.item = controller.items[i];
    }
  }
});

您这里的问题是
控制器。项
控制器不同。项[1]

我相信有人会进一步解释为什么这比我做得更好,但这与比较JavaScript中的对象有关

是另一篇文章的链接

什么