2015-05-05 6 views
-1

У меня есть группа кнопка с включен в шаблоне add-new-document-template.html:AngularJS: нг клик не работает

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

Вот директива: это inculeded в родительке директиве

angular.module('bdocinteractive.addNewDocument') 
.constant("NEW_DOC_TEMP_URL", { 
    url: 'src/app/add-new-document/add-new-document-template.html' 
}) 
.directive("addNewDocument", ["NEW_DOC_TEMP_URL", function (tempURL) { 
    return { 
     scope: true, 
     restrict: 'E', 
     controller: 'AddNewDocumentController', 
     controllerAs: "addDocCtrl", 
     templateUrl: tempURL.url 
    } 
}]); 

А вот мой контроллер:

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; 
     }); 
    }] 
); 

При нажатии на кнопки, нг-клик не выстрелил

Можете ли вы помочь мне, пожалуйста

NB: I'am работает с угловыми 1.3.15 Версия

+0

что такое «предупреждение» как? если вы надеетесь использовать javascript 'alert', это не будет работать. вам нужно создать функцию в пределах области действия, которая будет использовать в ней' alert'. – Pogrindis

+0

'ng-click' может содержать вызовы функций, определенных в '$ scope', а' alert' принадлежит 'window' и не может использоваться напрямую. –

+0

http://plnkr.co/edit/hLqUG4POxhq8mL7CRxcd?p=preview –

ответ

4

У вас есть alert метод, определенный на вашем $scope? Выражения в ng-click не отображаются в глобальном объекте (окне), поэтому вы не можете ссылаться на любые глобальные переменные в этом выражении. Вам нужно что-то вроде:

$scope.alert = window.alert; 
+0

Я добавил контроллер к своему сообщению, у меня был метод, связанный с '$ scope' –

0

Это updated ответ ...

Я предполагаю, что вы испытываете проблемы с переключая значение $scope.layout приведенный выше пример, кажется, работает.

+0

Нет, что не помогло решить проблему –

+0

Ive обновил мой пример ... – probinson

+0

Но это не работает для меня, ваш пример такой же, как и то, что я написал –

Смежные вопросы