“[对象对象]“;而不是Object被传递给ng-model用于<select>当我用Object选择一个选项时
"[object Object]" instead of Object is passed to ng-model for <select> when I select an option with Object
我使用Angular文档中的一个例子:https://docs.angularjs.org/api/ng/directive/select
"使用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>
app.js:
(function(angular) {
'use strict';
angular.module('ngvalueSelect', [])
.controller('ExampleController', ['$scope', function($scope) {
$scope.data = {
model: null,
availableOptions: [
{value: 'myString', name: 'string'},
{value: 1, name: 'integer'},
{value: true, name: 'boolean'},
{value: null, name: 'null'},
{value: {prop: 'value'}, name: 'object'},
{value: ['a'], name: 'array'}
]
};
}]);
})(window.angular);
砰砰作响:https://plnkr.co/edit/aHgqeK1pQHS5zfiIjyZv?p=preview
问题:每个<option>
都代表对象。我选择一个项目,"[object object]"被分配给<select>
的ng-model,而不是object。
Angular建议使用ng-options而不是带选项的repeater,但我需要为每个选项使用一些额外的逻辑,比如ng-style(每个选项都不同)。
问题是:当用户从select中选择一个选项时,如何在<select>
的ng-model中将对象作为object而不是String传递
为什么不是ng-options
?
<select size="6" name="ngvalueselect" ng-model="data.model" ng-options="item.value as item.name for item in data.availableOptions" multiple></select>
工作柱塞https://plnkr.co/edit/zVzTI6sR6LywC9vcZRkn
我认为你的选择应该是这样的:
<select size="6" name="ngvalueselect" ng-model="data.model" ng-options="option.value as option.name for option in data.availableOptions" multiple>
所以不应该有任何单独的选项项
美元(这);(":选择"). data("价值")
<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>
和jquery使用:
$(document).on("change","select",function(){
var objectOrStringReturend = $(this).find(":selected").data("value");
});
相关文章:
- 如何使用object.assign()从其他对象引用基本对象属性
- JSON.stringify和Object.keys在同一个对象上产生不同的结果
- 在使用object.create创建的对象中使用super
- JavaScript-从对象数组中输出随机OBJECT
- 什么是“;原型;通过JavaScript中的Object Literal Notation创建的对象的链接
- 'object对象'在firefox中,wehn引用了jquery
- 在 JavaScript 中依赖全局本机对象是否安全,尤其是 Object 对象
- 为什么 Object 对象中的某些属性不会在子对象中继承
- 设计:为什么JavaScript有单独的Function和Object对象,以及为什么它们有自己单独的原型对象
- 带有外部依赖项的Jasmine单元测试指令失败,类型错误:'[object对象]'
- (Object对象)没有方法效果
- 是object.x和object.y对象's在浏览器中的位置
- Object对象数组Json.字符串数组的字符串化
- Node.js Object对象没有方法'hasOwnProperty'
- 当试图为href获取attr时获取#[object对象]
- object对象转换为字符串数组
- 在Angular2应用程序中渲染JSON对象会得到“object”对象
- JSON返回Object对象
- 用一个所有对象都可以使用的函数扩充Object对象
- Knockout Javascript选择返回Object对象