在AngularJS中,可以從模板中調用方法而無需指令或routeProvider來綁定範圍?ng-click不會從模板中觸發
我的具體問題是,我的主控制器(AppCtrl)位於我的索引頁的主體。在索引上,我使用一個ngView根據路由引入模板。除默認模板外,每個RouteProvider都有自己的控制器。我認爲,由於範圍繼承,我可以使用從模板AppCtrl定義的方法,但試圖做一個簡單的警報或console.log不會註冊任何東西。我知道$範圍正在進入模板,因爲我的數據正確顯示。
這似乎是一個$範圍的問題,但我不知道如何解決它。我是否需要創建一個指令來明確綁定它們?
的index.html
<body ng-controller="AppCtrl">
<div ng-view></div>
</body>
app.js
var myApp = angular.module('myApp', [])
.config(function($routeProvider) {
.when('/', {
templateUrl: 'partials/list.html'
}),
.when('/info/:id, {
templateUrl: 'partials/info.html'
controller: 'InfoCtrl'
});
});
controllers.js
var controllers = {};
controllers.AppCtrl = function($scope, $location, Factory) {
...
$scope.doSomething = function() {
alert('hello');
};
};
myApp.controller(controllers);
list.html
<a href="#" ng-click="doSomething()">Do Something</a> // no response
嘗試將它追加到$ rootScope對象上 – Ven
它應該工作。這是[工作小提琴](http://jsfiddle.net/mrajcok/zcybQ/)。 –
每一次。與此混淆了一兩個小時,今天它的工作。我發誓,每當我c and and ask地尋求幫助時,就會開始自己開展工作。那麼,謝謝你的迴應。 – iamsar