如何在dropdown/ng-options中从加载的json中获取其他属性
在ng-change上我还想传递所选对象的campaignType.
我怎么能这样做?
我的观点看起来像这样
<div ng-app>
<div ng-controller="cCtrl">
<select ng-model="campaign" ng-options="c.id as c.name for c in campaigns" ng-change="search2(c.campaignType)">
<option value="">-- choose campaign --</option>
</select>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我的控制器看起来像这样
function cCtrl($scope) {
$scope.campaigns = [{
"custID": 1,
"custName": "aaa ",
"msgID": 3,
"msgName": "Email Test Msg",
"id": 2,
"name": "Email Test Campaign",
"description": "Test Campaign",
"campaignType": "Email",
"created": "1374229715",
"isActive": 1,
"isDeleted": 0
}];
$scope.search2 = function (campaignType) {
alert(campaignType); // not working
alert($scope.campaign.campaignType); // not working
//console.log($scope.campaign.campaignType);
}
}
Run Code Online (Sandbox Code Playgroud)
zs2*_*020 22
您可以将选定的对象传递给这样的函数,而不是传入属性
<select ng-model="campaign" ng-options="c.name for c in campaigns" ng-change="search2(campaign)">
Run Code Online (Sandbox Code Playgroud)
看看这个:http://jsfiddle.net/Qgmz7/9/
您不在ngRepeat上下文中.ngOptions完全不同.
a上的ngModel <select>将获取值,而<option>不是整个对象.同样,您不在ngRepeat内,您无权访问您的对象.
无需将值作为参数传递,您可以从中获取它$scope.事实上你也不需要ngChange,你可以$scope.$watch('campaign', ...)
所以
$scope.search2 = function () {
console.log($scope.campaign);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
42363 次 |
| 最近记录: |