2017-01-11 7 views
0

以下の角度コードを実行すると誰かが私に教えてもらえます。ボタンをクリックするとページがロードされません。でも、私はそれが動作しないような単純な警告を行う。ボタンがクリックされたときにng-clickが発射されない

私はここで間違っている必要がありますか?

はJavaScript

var app = angular.module('app',['ngRoute']); 

    app.config(function($routeProvider) { 
     $routeProvider. 
      when('/', {controller:Test, templateUrl:'test/part1'}). 
      when('/details', {controller:Test, templateUrl:'test/part2'}). 
      otherwise({redirectTo:'/'}); 
    }); 

    function grab ($scope, $location) { 
     $scope.reserve = function (id) { 
     $location.path('/details/'+id); 
    }; 

HTML

<body ng-app="app"> 
    <button id="btt" type="button" ng-click="grab(2)">Click to grab</button> 
</body> 

答えて

1

次のようなものがあります。

var app = angular.module('app',['ngRoute']); 

     app.config(function($routeProvider) { 
      $routeProvider. 
       when('/', {controller:Test, templateUrl:'test/part1'}). 
       when('/details', {controller:Test, templateUrl:'test/part2'}). 
       otherwise({redirectTo:'/'}); 
     }); 

    app.controller('Test', ['$scope', '$location', function Test($scope, $location) { 
     $scope.grab = function (id) {{ 
      $location.path('/details/'+id); 
     }; 
    }]); 
+0

ma悪いです –

2

コントローラがありますか?関数グラブはコントローラ内にあってはならず、$スコープの外にグラブを呼び出すこともできません。だから、

  • グラブ$scope.grab = function($location)

  • にリファクタリングする必要がありますが

2

は体のために、コントローラを定義し、$スコープ

に機能グラブを追加してくださいコントローラのテスト '内に移動しました
<body ng-app="app" ng-controller="testCtrl"> 

     app.controller('testCtrl', ['$scope', '$location', function($scope, $location){ 
       $scope.grab = function(id) { 
        $location.path('/details/'+id); 
       } 
     }]) 
関連する問題