Angularjs 1.3.5 ng-click不从路由调用控制器中的函数

时间:2015-04-17 23:15:22

标签: angularjs angularjs-ng-click angularjs-ng-route

我检查了类似的答案,并尝试修改有效的掠夺者,但在我的项目中执行类似的操作失败(可能是由于他们使用AngularJS 1.1.0的示例)。

我已经完成了教程https://docs.angularjs.org/tutorial,但对AngularJS来说还是一个新手。

对于我的项目,我使用的是AngualarJS 1.3.9版以及以下模块:

  • ngResource
  • ngRoute

我遇到了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 

})();

2 个答案:

答案 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

注意:双击按钮以显示提醒