Javascript &引用;[对象对象]”;而不是将对象传递给ng模型以获取<;选择>;当我选择带有对象的选项时

Javascript &引用;[对象对象]”;而不是将对象传递给ng模型以获取<;选择>;当我选择带有对象的选项时,javascript,angularjs,Javascript,Angularjs,我使用Angular文档中的一个示例: “使用ngValue将模型绑定到对象数组”部分 index.html: <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Example - example-select-ngvalue-production</title> <script src="//ajax.googl

我使用Angular文档中的一个示例:
“使用ngValue将模型绑定到对象数组”部分

index.html:

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Example - example-select-ngvalue-production</title>


  <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script>
  <script src="app.js"></script>



</head>
<body ng-app="ngvalueSelect">
  <div ng-controller="ExampleController">
  <form name="myForm">
    <label for="ngvalueselect"> ngvalue select: </label>
    <select size="6" name="ngvalueselect" ng-model="data.model" multiple>
      <option ng-repeat="option in data.availableOptions" ng-value="option.value">{{option.name}}</option>
    </select>
  </form>
  <hr>
  <pre>model = {{data.model | json}}</pre><br/>
</div>
</body>
</html>
普朗克:

问题是:每个
表示对象。我选择一个项目,“[对象对象]”被分配给
的ng模型,而不是对象

Angular建议使用ng选项而不是带有选项的repeater,但我需要为每个选项使用一些额外的逻辑,比如ng样式(每个选项都不同)


问题是:当用户从select中选择一个选项时,如何在
的ng模型中将对象作为对象而不是字符串传递。

为什么不
ng options

<form name="myForm">
    <label for="ngvalueselect"> ngvalue select: </label>
    <select size="6" name="ngvalueselect" ng-model="data.model" multiple>
      <option ng-repeat="option in data.availableOptions" data-option="{{option.value}}">{{option.name}}</option>
    </select>
  </form>
  <hr>
  <pre>model = {{data.model | json}}</pre><br/>
</div>
</body>
</html>

正在工作的plunker(this).find(“:selected”).data(“value”)


我相信你的选择应该是这样的:



因此,不应该有任何单独的选项项

这实际上很有趣,因为Angular docs页面的默认plunker不起作用,但是如果您将脚本src更改为docs页面()上使用的脚本,它将非常有效。您是对的。看起来他们在文档中使用的角度版本与发布时使用的版本不同。这很有趣:最新发布的角度
1.x
版本是
v1.5.8
,但对于角度文档,使用的是
v1.5.9-build.5079+sha.eeb9ef0
。因为use希望使用此字体选择列表,我需要为每个选项设置字体系列的ng样式。不完全是。我需要为每个选项元素使用不同的ng样式。因此,在颜色方面,列表中的每一行都使用不同的颜色。问题是关于角度的问题-通过jQuery(在指令之外)附加一个on-change处理程序不是很“角度”,这可能是这个答案被否决的原因。Angular和jQuery是非常不同的两种类型。
<select size="6" name="ngvalueselect" ng-model="data.model" ng-options="item.value as item.name for item in data.availableOptions" multiple></select>
<form name="myForm">
    <label for="ngvalueselect"> ngvalue select: </label>
    <select size="6" name="ngvalueselect" ng-model="data.model" multiple>
      <option ng-repeat="option in data.availableOptions" data-option="{{option.value}}">{{option.name}}</option>
    </select>
  </form>
  <hr>
  <pre>model = {{data.model | json}}</pre><br/>
</div>
</body>
</html>
$(document).on("change","select",function(){
    var objectOrStringReturend = $(this).find(":selected").data("value");
});
<select size="6" name="ngvalueselect" ng-model="data.model" ng-options="option.value as option.name for option in data.availableOptions" multiple>