如何在Angularjs的contextscope中传递从下拉列表中选择的值?

时间:2016-12-30 22:42:45

标签: javascript angularjs json

我有一个下拉列表

$scope.animals = [
      {value:'lion', name:'lion', description: 'lion'}, 
      {value:'cat', name:'cat', description: 'cat'}, 
      {value:'dog', name:'dog', description: 'dog'}, 
    ];

我希望将从dropdown中选择的值作为contextscope传递给另一个指令。 e.g

<md-select ng-model="context">
    <md-option ng-repeat="animal in animals" value="{{animal.value}}"  aria-label="{{animal.name}}">{{animal.name}}</md-option>
</md-select>
<div described-type flex="70" contextscope="context"></div>

在describe-type指令中我添加了描述

<input ng-model="context.description" name="context.description">

我收到以下错误:  “无法在字符串'lion'上创建属性'描述'”

我想要的JSON格式是

"lion" : {
           "description": "wild animal"
         }

如何解决错误并创建JSON?

1 个答案:

答案 0 :(得分:0)

您错误地设置了值。 ngModel设置为值,您设置为animal.value,在这种情况下是字符串lion。相反,它应该是:

<md-select ng-model="context">
    <md-option ng-repeat="animal in animals" value="{{animal}}"  aria-label="{{animal.name}}">{{animal.name}}</md-option>
</md-select>
<div described-type flex="70" contextscope="context"></div>