首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 ><select> getter-setter接收字符串形式的对象参数

<select> getter-setter接收字符串形式的对象参数
EN

Stack Overflow用户
提问于 2015-10-07 19:52:41
回答 1查看 616关注 0票数 0

为什么moo对象参数以[object Object]字符串形式出现?

代码语言:javascript
复制
var App = angular.module('myApp', [
    'controllers']);



var ctrls = angular.module('controllers', []);
ctrls.controller('myController', ['$scope', function ($scope) {
    
    $scope.moos = [
        {'id':1, 'name': 'foo'}, {'id':2, 'name': 'boo'}
    ];
    
    $scope.proxy = {
        setter: function (moo) {
            if(!arguments.length)  return;
            console.log(moo);
            $scope.moo = moo;
        }
    };    
}]);
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0-beta.5/angular.js"></script>
<div ng-app="myApp" ng-controller="myController">
    <p>{{moo.name}}</p>
    <select ng-model="proxy.setter" ng-model-options="{ getterSetter: true }">
        <option ng-selected="moo.id===m.id" ng-value="m" ng-repeat="m in moos">{{m.name}}</option>
    </select>
</div>

EN

回答 1

Stack Overflow用户

发布于 2015-10-07 19:56:36

ng-value会将一个字符串放入option的值中。转换成字符串的javascript对象是[object Object]

但是您可以将m.id放在ng-value中,以便在javascript代码中检索它。下面是一个示例:

代码语言:javascript
复制
var App = angular.module('myApp', [
    'controllers']);



var ctrls = angular.module('controllers', []);
ctrls.controller('myController', ['$scope', function ($scope) {
    
    $scope.moos = [
        {'id':1, 'name': 'foo'}, {'id':2, 'name': 'boo'}
    ];
    
    $scope.proxy = {
        setter: function (id) {
            if(!arguments.length)  return;
          
            var moo = $scope.moos.filter(function(moo) {
              return moo.id == id;  
            })[0];
          
            console.log(moo);
            $scope.moo = moo;
        }
    };    
}]);
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0-beta.5/angular.js"></script>
<div ng-app="myApp" ng-controller="myController">
    <p>{{moo.name}}</p>
    <select ng-model="proxy.setter" ng-model-options="{ getterSetter: true }">
        <option ng-selected="moo.id===m.id" ng-value="m.id" ng-repeat="m in moos">{{m.name}}</option>
    </select>
</div>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32991513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档