routeProviderを追加した小さなアプリを作成し、ContentViewを変更しました。私のさまざまなhtmlsとの切り替えは、私のhtmlの車と機能を使用することができます。
var app = angular.module("mainApp", ['ngRoute']);
angular.module("mainApp").config(
[ '$routeProvider', '$locationProvider',
function($routeProvider, $locationProvider) {
$locationProvider.hashPrefix('');
$routeProvider.when("/", {
templateUrl : './page1.html',
controller : 'con1'
}).when("/stuff", {
templateUrl : './page2.html',
controller : 'con2'
}).when("/404", {
templateUrl : "./errorPage.html"
})
// else 404
.otherwise({
redirectTo : "/404"
});
} ]);
私は、機能を追加しました:私のコントローラが初期化モードにあるとき
this.$onInit = function() {console.log("test"); };
は、ものを行います。 (注:他のプロジェクトでもこのパターンを追加しましたが、この新しいプロジェクトではこれをロードしません)。
なぜそれがうまくいかないのですか?
同じコードは1つのプロジェクトでのみ動作しますが、他のプロジェクトでは動作しませんか?どのコントローラに '$ onInit'ライフサイクルフックを追加しましたか、コントローラのコードを投稿できますか?あなたの質問を少しはっきりさせることができますか? [this](https://jsfiddle.net/aygqcgeb/2/)のように見えますか? –
同じパターンを実装した私の他の(最初のプロジェクト)は、asingされたhtmlがロードされている場合、コントローラのinit関数を呼び出します。そして、このプロジェクトはそれを呼びません。ワイアードの一種。 – Offset
これは手動で 'this。$ onInit();'のように手動で呼び出されませんか?私の答えと[jsfiddle](https://jsfiddle.net/aygqcgeb/9/)の例を確認しましたか? –