4

どういうわけか、私のアプリは開発中に動作を停止し、何が問題なのか本当にわかりません。

すべてを削除しました。残っているコードは次のとおりです。

function handlerControl($scope, $routeParams, $location){
    $scope.route = $routeParams;
}

var app = angular.module('Hello', []).config(
    function($routeProvider){
        $routeProvider.when('/:a/:b', {controller: handlerControl});
    }
);

そしてhtmlは

<body ng-app="Hello">

<div ng-controller="handlerControl">
    {{route}}
</div>

</body>

すべてを含めて頭の部分を省略。

私が行くとき

http://helloday/#/a/b/

{a: 'a', b: 'b'} を取得することを期待しているときに、空のハッシュを取得しています

私が間違っていることは何ですか?

少し修正しました(動作させるため) jsFiddle: http://jsfiddle.net/wWDj2/ http://jsfiddle.net/wWDj2/

4

1 に答える 1

6

ルーティングでは、ngViewを使用する必要があり、atemplateまたはtemplateUrl:のいずれかを指定する必要があります。

アプリコード。

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

app.config(function($routeProvider) {
   $routeProvider.when('/foo/:id', {
        controller: 'FooCtrl',
        template: '<h1>Foo {{id}}</h1>'
   })
   .when('/bar/:test', {
        controller: 'BarCtrl',
        templateUrl: 'bartemplate.html'
   })
   .otherwise({ 
        controller: 'DefaultCtrl',
        template: '<h1>This is the default</h1>'
   });
});

app.controller('FooCtrl', function($scope, $routeParams) {
   $scope.id = $routeParams.id;
});

app.controller('BarCtrl', function($scope, $routeParams) {
   $scope.test = $routeParams.test;
});

app.controller('DefaultCtrl', function($scope){});

メインページのマークアップ:

<div ng-app="myApp">
   <a href="#/foo/123">Foo 123</a>
   <a href="#/bar/blah">Bar Blah</a>
   <a href="#">Default route</a>
   <hr/>
   <div ng-view>
       <!-- your processed view will show up here -->
   </div>
</div>
于 2013-01-25T16:13:32.393 に答える