2014-11-03 94 views
0

我有這樣AngularJS - 簡單的路由不工作

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

    app.config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) { 
      $locationProvider.hashPrefix("!").html5Mode(true); 

      $routeProvider 

      .when('/sukien', { templateUrl: '/app/views/sukien/index.html' , controller: 'eventCtrl' }) 
      .when('/sukien/:id', { templateUrl: function (params) { return '/app/views/sukien/index.html?id=' + params.id }, controller: 'eventCtrl' }) 


     }]) 

爲什麼/ sukien作品和/ sukien /帶參數的路線:ID不?實際上,angularjs似乎不明白它是什麼。 「Uncaught TypeError:undefined is a function」

/sukien/333 =>未能正常工作。

+0

只是打印'訪問ID在你的控制器params'來控制你的功能,看看它包含什麼。 – akonsu 2014-11-03 09:27:17

回答

1

您正在混合模板url,您的應用程序狀態和搜索參數。

templateUrl告訴angularjs在哪裏查找html文件:它將不太可能依賴於params.id並通過函數來​​設置,而是一個常量。

它沒有什麼可以看到用戶在瀏覽器中看到的網址。

例如:'/app/views/sukien/suiken.html'

用戶看到的將是這樣的網址:

.../suiken/1223445 

然後你就可以通過$ routeParams.id