2016-12-08 7 views
0

私はAngularのWebサイトでチュートリアルを行い、ほとんどのことを理解していましたが、今は自分自身を大騒ぎして実験しようとしています。たとえ最も基本的なことが起こっても失敗することさえあります。最初の角度のJSコントローラの値が表示されない

は、ここに私のview1.html

<p>This is the partial for view 1.</p> 
<p>{{$ctrl.testvalue}} Hello </p> 

だとここで私のview1.js

'use strict'; 

angular.module('myApp.view1', ['ngRoute']) 

.config(['$routeProvider', function($routeProvider) { 
    $routeProvider.when('/view1', { 
    templateUrl: 'view1/view1.html', 
    controller: 'View1Ctrl' 
    }); 
}]) 

.controller('View1Ctrl', [function() { 
    this.testvalue = "Hey there"; 
}]); 

私はhtmlファイルで2番目の行を追加する変更しただけのもの

、および中でtestValueですモジュールのコントローラセクションに表示されます。

ウェブページを読み込むと、「Hey there」というテキストは表示されません。私は間違って何をしていますか?

ありがとうございます。

+0

プランカを追加してください。 –

+0

コンソールにエラーが表示されますか? – Patrick

+0

コンソールにエラーはありません。 – stumpbeard

答えて

0

あなたは、あなたがあなたのルートの設定でcontrollerAs構文で行くことができる範囲を使用しないようにしようとしている場合:

.controller('View1Ctrl', [function() { 
    var vm = this; 
    vm.testvalue = "Hey there"; 
}]); 

そして、あなたのルート設定で:

あなたのhtmlで
.config(['$routeProvider', function($routeProvider) { 
    $routeProvider.when('/view1', { 
    templateUrl: 'view1/view1.html', 
    controller: 'View1Ctrl', 
    controllerAs: 'vm' 
}); 
}]) 

そして:

<p>This is the partial for view 1.</p> 
<p>{{vm.testvalue}} Hello </p> 

もちろん、ルート設定でcontrollerAsを追加しても問題ありません。

+0

私はスコープの使用を避けることを必ずしも求めているわけではありません。ベストプラクティスを使用していない場合は、教えてください。 – stumpbeard

+0

@stumpbeard正しいパターンに従っているなら、あなたが設定したコントローラのキーがなくなってしまっていると思います。 – Yaser

+0

@stumpbeard ControllerAsメカニズムは、ビューにネストされたコントローラを使用すると非常に便利です。その場合、 'controllerAs: 'View1''と' View2'を使います。これにより、両方のコントローラに同じ変数名を持たせ、 '{{View1.testvalue}}'と '{{View2.testvalue}} 'で別々のビューで扱うことが可能になります。 – JanP

関連する問題