Javascript AngularJS:ng单击不工作

Javascript AngularJS:ng单击不工作,javascript,angularjs,click,Javascript,Angularjs,Click,我有一个包含在模板中的组按钮添加新文档模板。html: <div class="col-sm-4" style="text-align: right"> <div class="btn-group" role="group"> <button class="btn btn-default" ng-class="{active: layout == 'list'}" ng-click="l

我有一个包含在模板中的组按钮
添加新文档模板。html

<div class="col-sm-4" style="text-align: right">
        <div class="btn-group" role="group">
            <button class="btn btn-default" ng-class="{active: layout == 'list'}"
                    ng-click="listView()">
                <i class="fa fa-list-ul fa-lg"></i></button>
            <button class="btn btn-default" ng-class="{active: layout == 'grid'}" ng-click="gridView()">
                <i class="fa fa-th fa-lg"></i></button>
        </div>
    </div>
这是我的控制器:

angular.module("bdocinteractive.addNewDocument").
controller("AddNewDocumentController", ["$scope", "AddNewDocumentService",
    function ($scope, AddNewDocumentService) {
        var me = this;
        $scope.gridView = function () {
            $scope.layout = "grid";
        };
        $scope.listView = function () {
            $scope.layout = "list";
        };
        $scope.models = [];
        $scope.layout = "list";
        $scope.modelSelectedId = "";
        AddNewDocumentService.getAllModels().success(function (data) {
            $scope.models = data;
        });
    }]
);
单击按钮时,不会触发ng click

你能帮我吗


注意:我正在使用Angular 1.3.15版本

您是否在
$scope
上定义了
警报
方法?
ng click
中的表达式不会在全局对象(窗口)上求值,因此不能引用该表达式中的任何全局变量。你需要像这样的东西:

$scope.alert = window.alert;
这是一个 回答


我假设您在切换
$scope.layout的值时遇到问题。上面的示例似乎正在运行。

什么是
警报
?如果您希望使用javascript
警报
它将不起作用。。您需要在作用域内创建一个函数,该函数将在其中使用
警报
ng单击
只能包含对
$scope
中定义的函数的调用,而
警报
属于
窗口
,第一次我在我的控制器中创建了一个方法,并从我的模板中调用了它,但我也遇到了同样的问题,所以我尝试了
alert
javascript方法,我将用原始问题编辑它。我将控制器添加到我的帖子中,我有一个与
$scope
相关的方法,但它对我不起作用,您的示例与我发布的示例相同。我的示例略有不同,即我声明了ng控制器,而您的示例中并未实际提到它。。。对不起,我帮不了你。你说得对,我有一个指令,但我的帖子中没有提到url中的html:“src/app/add new document/add new document template.html”?是的,它在指令的模板中
$scope.alert = window.alert;