发表于: 2017-05-11 23:19:49
1 933
今天完成的事情:
进行搜索框的编写及相关知识的学习;
明天的计划:
完成搜索框的编写,并完善任务8.
遇到的问题:
1 angular生成下拉框:
有两种方式:
①. ng-repeat实现下拉框:
select下拉框里option组装成下拉框,这里利用ng-repeat指令来创建
$scope.trees = ["松树","樟树","枫树","枣树","桃树"];
<select style="width: 200px;">
<option ng-repeat="tree in trees">{{tree}}</option>
</select>
②.ng-option指令使用很简单,只需要绑定两个属性:
一个是ng-model用于获取选定的值;
另一个是ng-options用于确定下拉列表的元素数组。
<select ng-model="engineer.currentActivity" class="form-control" ng-options="act for act in activities"></select>
上面这条语句就是把选择的值与engineer.currentActivity进行双向数据绑定,然后列表中的选项是activities中的每一个值。数据如下:
$scope.engineer = {
name: "Dani",
currentActivity: "Fixing bugs"
};
$scope.activities =
[
"Writing code",
"Testing code",
"Fixing bugs",
"Dancing"
];
注意:在使用ng-option生成下拉框时,进行筛选后,下拉框首选项永远是 currentActivity: "Fixing bugs",并不会随着ng-model改变,所以在做搜索功能是,最好不要使用ng-options。
2 无法获取ng-repeat后的ng-model值:
因为ng-model是ng-repeat动态生成的,ng-model=”变量”,什么变量,是未知的,所以你无法在$scope."变量"取到值,就算取到值也是其中一个值。
解决方法:
首先ng-model设置为$parent.conf[$index]:
用$parent的原因是ng-repeat产生的,他会为每一个input生成一个子scope对象,而$parent表示用父类的scope,这样我们在JS文件中才能取到该值。
$index代表的意思是ng-repeat="param in params"遍历时的下标;
conf是我们在js中的变量名实际效果;
我们在controller中定义了一个$scope.conf = [];就是一个数组,刚好通过上面的代码,为该数组添加了元素,然后我们通过scope.conf刚好把ng-model的所有元素自动保存了。
收获:以上及$stateParams的进一步理解,昨天在日报中写的理解有问题。
评论