心得1:
//控制器里面的代码会晚一些执行
setTimeout(function(){
//获取对象的scope
var ele = document.querySelector('[ng-controller=mycontroller]');
var $scope = angular.element(ele).scope();
$scope.myFunc(); },10)
控制器里面的代码会延迟执行,所以同一个js文件中,如果要通过DOM元素查找到对应控制器上的scope然后调用方法时,需要将查找的代码延迟执行。
心得2:
每当申明一个控制器都需要将$scope注入到控制器中,比如
var app = angular.module("myApp",[]); app.controller("myController",function($scope){ $scope.name = "Mona"; })
其实,可以将上述代码中的$scope用this代替,即
var app = angular.module("myApp",[]); app.controller("myController",function(){ this.name = "Mona"; })
angular还有链式写法,将上述代码改成下面的写法:
angular.module("myApp",[]).controller("myController",function($scope){ $scope.name = "Mona"; })
心得3:
angular中的一些常识
ng-class = "{active:isSelected(1)}"
此时angular可以监听class为active的样式类,当active冒号后面的值为true时active有效,为false时无效
ng-show = "isSeleted(1)"
此时 angular 可以控制绑定有ng-show的DOM元素的显示和隐藏,当ng-show=" a " 中a的值为true时就显示该DOM元素,当a的值为false时隐藏该DOM元素。