2015-07-09 21 views
0

我是新來AngularJS,我仍然有點困惑調用對象的自定義方法,如果有一個比較懶惰的方式來做到這一點:AngularJS調用自定義對象功能NG單擊

https://jsfiddle.net/f4ew9csr/3/

<div ng-app="myApp" ng-controller="myCtrl as myCtrl"> 
    <h1 ng-click="myCtrl.display()">Click me!</h1> 
    <h2>{{ myCtrl.myValue }}</h2> 
</div> 

var app = angular.module('myApp', []); 
app.controller('myCtrl', function() { 
    var self = this; 
    this.myValue = "Hello world!" 
    this.display = function() { 
     self.myValue = MyObject.display(); 
    }; 
}); 

var MyObject = new function() { 

    var i = 0; 

    this.display = function() { 
     alert("Change h2"); 
     return "Hey"; 
    }; 

    this.update = function() { 
     i += 1; 
     return i; 
    } 
}; 

所以當h1被點擊時,h2會被改變並彈出警告。但我的問題是,我想用一個更有效的方式用ng-click來調用一個自定義對象方法,而不是我所知道的。 我怎麼能運行MyObject.update()setInterval所以它不斷改變我的h2頭沒有jQuery?

回答

1

我建議你使用你的情況$間隔將呼籲的時間間隔的規定量的功能

標記

<div ng-app="myApp" ng-controller="myCtrl as myCtrl"> 
    <h1 ng-click="myCtrl.display()">Click me!</h1> 
    <h2>{{ myCtrl.myValue +' Count'+ myCtrl.count}}</h2> 
</div> 

代碼

$interval(function() { 
    self.count = MyObject.update(); 
}, 1000) 

Working Fiddle

+0

Thx爲你的快速回答,所以與angularjs我不得不外包一些東西到app.controller函數?相比之下,當我使用jQuery來處理對象內的所有事情時,比如改變一些html? – Con

+0

@ user3852496你在說什麼對象......你能解釋一下嗎? –