选择下拉ajax/对象映射
ng-select dropdown ajax/object mapping
使用angular ng-select,寻找将select下拉菜单与基于作用域中对象的属性选择的已选选项链接起来的最佳实践/建议。
- 控制器保存一个对象,该对象(动物)有一个选定的猫
- cats (options)是从Ajax调用中加载的,使用任何"promise"类型的angular服务(demo中的$http)
- 当页面加载时,我希望选择的猫与动物相同。猫(希望看到最简单的路径双向映射)
这是活塞:http://plnkr.co/edit/bMj7678djgPoJbiTRceG?p=preview
服务/控制器JS .
selectDemo = angular.module('selectDemo',[]);
selectDemo.factory("cat", ["$http", "$log", function($http, $log){
return {
query: function(runAfter){
$log.debug("Getting cats from service");
return $http.get('getCats.json');
}
}
}]);
selectDemo.controller('SelectDemoCtrl', ["$scope", "$log", "cat", function($scope, $log, Cat){
$scope.animal = {type: "Mammal", cat: {"id": 2, "name": "Simon", "breed": "Persian"}};
Cat.query().then(function(data){
cats = data.data;
$scope.cats = cats;
});
}]);
Html: <!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.js"></script>
<link rel="stylesheet" href="style.css">
<script src="script.js"></script>
</head>
<body ng-app="selectDemo" ng-controller="SelectDemoCtrl">
<h1>AngularJS Select Dropdown</h1>
<div id="data"></div>
<form role="form">
<select data-ng-model="animal.cat" data-ng-options="cat.name for cat in cats">
<option value="">Select a cat</option>
</select>
</form>
<p>You selected: {{ animal.cat }}</p>
</body>
</html>
JSON响应对象:
[{"id": 1, "name": "Garfield", "breed": "Tabby"},
{"id": 2, "name": "Simon", "breed": "Persian"},
{"id": 3, "name": "Twix", "breed": "Mixed"}]
这是一个更新的plunk:
http://plnkr.co/edit/KTJt9602eD5Pgr1y7c9w?p =
预览这里的问题是,从ng-options
中选择的对象需要引用等于 ng-model
引用的对象,因此需要在数组中查找对象。
相关文章:
- 如何运行对象映射函数
- javascript对象2对象映射器
- 如何将 JSON 对象映射到 ng-repeat 中的折叠行
- 将 Json 对象映射到每个属性类和数据
- jQuery逗号分隔的字符串到对象映射
- 使用 KnockoutJS 将 JSON 对象映射到视图模型的一部分
- 如何将javascript对象映射到mvc模型
- AngularJS将一个对象映射到另一个对象
- 将JSON对象映射到TypeScript对象
- 如何使用Javascript对象/映射作为队列
- 将JSON对象映射到Javascript对象
- 对象中的对象映射
- 我如何将一个大对象映射到 es6 中的数组
- Javascript将对象映射转换为多维数组
- Javascript将对象映射转换为数组
- 下划线:通过对象映射(即使未定义)
- 将对象映射到一行中的key=value字符串
- 如何在Angular JS中对1:1的对象映射进行排序
- Js对象映射
- 将对象映射到数组中,然后使用jQuery输出值