简体   繁体   English

angularjs 对话框似乎对我不起作用

[英]The angularjs dialog doesn't seem to work for me

I have been trying to implement AngularJS dialog in my app and i copy everything from the demos provided in material.angularjs.org however I don't seem to be able to make it work.我一直在尝试在我的应用程序中实现 AngularJS 对话框,我从material.angularjs.org中提供的演示中复制了所有内容,但是我似乎无法让它工作。 Could anyone see what am I missing ?谁能看到我错过了什么?

This is the Javascript code:这是Javascript代码:

  // TABLE CONTROLLS GO HERE 
app.controller('AddTableController',['$scope', function($scope,$mdDialog){
        $scope.allTables = tables;
        //method to add tables 
        $scope.showAdvanced= function(ev) {
            $mdDialog.show({
              controller:DialogController,
              templateUrl:'index_directives/dialog-add-table.html',
            })
        };
}]);
//HELPER METHOD FOR THE AddTableController//////////////////////////////
function DialogController($scope, $mdDialog) {
  $scope.hide = function() {
    $mdDialog.hide();
  };
  $scope.cancel = function() {
    $mdDialog.cancel();
  };
  $scope.answer = function(answer) {
    $mdDialog.hide(answer);
  };
}

Then the function is called on button click :然后在按钮单击时调用该函数:

<md-button class="md-fab add-button" ng-click="showAlert($event)">+</md-button>

From the error log in the console I get something like this:从控制台中的错误日志中,我得到如下信息:

TypeError: Cannot read property 'show' of undefined
    at n.app.controller.$scope.showAlert (http://localhost/angular/js/app.js:24:16)
    at ib.functionCall (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:199:303)
    at Ec.(anonymous function).compile.d.on.f (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:216:74)
    at n.$get.n.$eval (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:126:15)
    at n.$get.n.$apply (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:126:241)

You forgot to define the $mdDialog dependency:您忘记定义 $mdDialog 依赖项:

app.controller('AddTableController',['$scope', '$mdDialog', function($scope,$mdDialog){

Since it's very common forgetting to define the dependency injection, you may be interested on this suggestion of @Michael Benford regarding ng-annotate.由于忘记定义依赖注入是很常见的,您可能对@Michael Benford 关于 ng-annotate 的这个建议感兴趣。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM