我检查了类似的答案,并尝试修改有效的掠夺者,但在我的项目中执行类似的操作失败(可能是由于他们使用AngularJS 1.1.0的示例)。
我已经完成了教程https://docs.angularjs.org/tutorial,但对AngularJS来说还是一个新手。
对于我的项目,我使用的是AngualarJS 1.3.9版以及以下模块:
我遇到了ng-click问题。
这是我的路由设置:
app.config([
"$routeProvider",
function($routeProvider){
$routeProvider.
when("/calendar",{
templateUrl:"templates/test.php",
controller: 'TestController',
}).
...
}
]);
我的test.php:
<button data-ng-click="test2()">Thing</button>
{{test}}
这是我的控制器:
var appControllers = angular.module('appControllers', []);
appControllers.controller("TestController",
["$scope",
function($scope){
$scope.test = "Hello";
$scope.test2 = function(){
alert("okay");
};
}
]);
当我加载页面时,&#34;你好&#34;显示但按下按钮什么都不做(控制台没有错误,它不在表单内)。
我已经看过一些使用数据-ng-click的例子,但这也不起作用。 Angular Documentation中的以下示例确实有效,因此我认为我的问题可能是范围问题:
<button ng-click="count = count + 1" ng-init="count=0">
Increment
</button>
count: {{ count }}
任何人都可以确认并指出我正确的方向吗?
提前致谢。
更新:
没有关于注入的任何控制台错误,并且路由工作正常,但我应该包含我的app.js以获得完整性(文件还包含我的路由设置,暂时但不是很重要) :
(function(){
var app = angular.module(
// Name of app, linked to ng-app
'testApp',
// Dependencies
[
'ngRoute', // Use the routing service
'ngResource',
]
);
//The routing part goes here
})();
答案 0 :(得分:0)
如果页面显示“Hello”,那么您的路由正在运行,因此您的控制器也是如此。问题可能在于警报。修改你的
$scope.test2 = function(){
alert("okay");
};
到
$scope.test2 = function(){
$scope.test = "World";
};
如果页面更新了该值,那么问题在于您的浏览器会停用警报。
答案 1 :(得分:0)
您需要注入ngRoute:
var appControllers = angular.module('appControllers', ['ngRoute']);
您还需要在应用程序html中放置ng-view元素:
工作人员: http://plnkr.co/edit/IDo6ZRX4a0l5Piz6uzbA
注意:双击按钮以显示提醒