在 AngularJS 中,是否可以在没有指令或 routeProvider 的情况下从模板中调用方法来绑定范围?
我的具体问题是我的主控制器 (AppCtrl) 位于我的索引页的正文中。在索引上,我使用 ngView 根据路由提取模板。除了默认模板之外,每个 routeProvider 都有自己的控制器。我假设由于范围继承,我可以使用模板中使用 AppCtrl 定义的方法,但尝试仅执行简单的警报或 console.log 不会注册任何内容。我知道 $scope 正在访问模板,因为我的数据正确显示。
这似乎是一个 $scope 问题,但我不确定如何解决它。我是否需要创建一个指令来显式绑定它们?
索引.html
<body ng-controller="AppCtrl">
<div ng-view></div>
</body>
应用程序.js
var myApp = angular.module('myApp', [])
.config(function($routeProvider) {
.when('/', {
templateUrl: 'partials/list.html'
}),
.when('/info/:id, {
templateUrl: 'partials/info.html'
controller: 'InfoCtrl'
});
});
控制器.js
var controllers = {};
controllers.AppCtrl = function($scope, $location, Factory) {
...
$scope.doSomething = function() {
alert('hello');
};
};
myApp.controller(controllers);
列表.html
<a href="#" ng-click="doSomething()">Do Something</a> // no response