在js中,函數的前後執行html
(1)在angular中假設有這個場景,對錶單資料進行編輯,恰好這個表單有select選項須要從後臺中獲取,這個時候這個表單使用angular進行開發的時候的正確打開方式應該是promise
先加載select選項,在加載表單的對應內容(因爲http是異步的,並非單純的把js順序調整一下就能夠的)app
這時候能夠使用angular自帶的$q返回promise來控制函數運行,異步
若是函數中沒有其餘的異步,簡單粗暴的使用$timeout來控制函數
(2)input【type=hidden】使用ng-model沒法賦值中這個bug,能夠套個div把東西隱藏 type設爲別的值,後者任何隱藏他的方法。spa
(3)在查閱資料的時候發現了你們另外一種的判斷list加載到最後一條的方案code
angular中判斷 ng-repeat是否迭代完畢。htm
by:古德God http://www.cnblogs.com/wangmeijian/p/5141266.html blog
//方法一事件
$scope.data = [ { str: 'a' }, { str: 'b' }, { str: 'c' } ] //自定義指令repeatFinish app.directive('repeatFinish',function(){ return { link: function(scope,element,attr){ console.log(scope.$index) if(scope.$last == true){ console.log('ng-repeat執行完畢') } } } }) <div id="box"> <span ng-repeat="item in data" repeat-finish>{{item.str}}</span> //小駝峯,repeatFinish ,用 - 隔開,repeat-finish </div>
<div id="box"> <span ng-repeat="item in data" repeat-finish="renderFinish()">{{item.str}}</span> </div> 再經過指令的attr參數獲取這個處理函數 複製代碼 app.directive('repeatFinish',function(){ return { link: function(scope,element,attr){ console.log(scope.$index) if(scope.$last == true){ console.log('ng-repeat執行完畢') scope.$eval( attr.repeatFinish ) } } } }) //controller裏對應的處理函數 $scope.renderFinish = function(){ console.log('渲染完以後的操做') }
app.directive('repeatFinish',function(){ return { link: function(scope,element,attr){ console.log(scope.$index) if(scope.$last == true){ console.log('ng-repeat執行完畢') //向父控制器傳遞事件 scope.$emit('to-parent'); //向子控制器傳遞事件 scope.$broadcast('to-child'); } } } }) //父控制器中監聽事件 $scope.$on('to-parent',function(){ //父控制器執行操做 }) //子控制器中監聽事件 $scope.$on('to-child',function(){ //子控制器執行操做 }) 複製代碼