2017-09-02 16 views
0

$ mdToastで未定義のプロパティ「ショー」を読み込めませんし、私は問題が何であるかを知りませんしかし、これは本質的にそれのジストです... Angular material design guidelinesを基にして、このになるはずです。私はなぜ私の人生を理解できないのですか?は、私は本当にこの問題に苦しんだ

私は単にエラーを取得するコードを実行すると: TypeError: Cannot read property 'show' of undefined

のindex.html:

<!DOCTYPE html> 
<html lang="en" ng-app="Main"> 
<!-- some stuff here --> 
    <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/angular_material/1.1.0-rc4/angular-material.min.css"> 
</head> 

<body ng-controller="MainCtrl as ctrl"> 
<div ng-click="executeToast()"> 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.3/angular.min.js"></script> 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.3/angular-animate.min.js"></script> 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular-route.min.js"></script> 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.3/angular-aria.min.js"></script> 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.3/angular-messages.min.js"></script> 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.3/angular-sanitize.min.js"></script> 
<script src="https://ajax.googleapis.com/ajax/libs/angular_material/1.1.0-rc4/angular-material.min.js"></script> 
</body> 
</html> 

コントローラ:

angular.module('MainController', [ 
     'MainService', 
     'MainDirective', 
     'ngMaterial', 
     'ngMessages', 
     'ngSanitize' 
    ]) 
    .controller('MainCtrl', [ '$scope', '$sce', '$mdToast', function($scope, Main, $sce, $apply, $rootScope, $mdToast) { 
     $scope.executeToast() = function() { 
      $mdToast.show($mdToast.simple({ 
       hideDelay: 3000, 
       position: 'top left', 
       content: 'testing', 
       toastClass: 'success' 
      })); 
     } 
}]); 

任意の考えや可能な解決策?ありがとう!

答えて

2

はミスのカップルは、あなたがここで行わ:

1を、依存性の注入シーケンスでは、よりhere

2、依存関係として$applyを渡す必要、

はこれを試してみてくださいません確認し、同じでなければなりません

.controller('MainCtrl', [ '$scope', '$rootScope', '$mdToast','$sce', function($scope, $rootScope, $mdToast, $sce) { 
     $scope.executeToast() = function() { 
      $mdToast.show($mdToast.simple({ 
       hideDelay: 3000, 
       position: 'top left', 
       content: 'testing', 
       toastClass: 'success' 
      })); 
+0

はい!それはうまくいきました。私はリストした他の依存関係は必要ありませんか? –

+0

@JaneDoeが私の答えを今編集しました –

関連する問題