发表于: 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的进一步理解,昨天在日报中写的理解有问题。



返回列表 返回列表
评论

    分享到