私は 'タイムアウト/タイプライターエフェクト'関数に約束を張り切っているので、関数が終了したら単純な$ state.goという別の関数を呼び出す必要があります。私は多くの記事を研究していますが、何も試してみません。最初の関数は決して実行されていません。実行されているかもしれませんが、速くて何も見えないほど速く、2番目の($ state.go)関数はすぐに実行されます。 アイデアをいただければ幸いです。ありがとうございました!
app.controller('homeCtrl', function($scope, $state, $q, $interval, $timeout) {
function beginn() {
var content = "helloo"
$scope.typewriter = "";
var i = 0;
var timer = $interval(function() {
if (i < content.length)
$scope.typewriter += content[i];
else {
$interval.cancel(timer);
}
i++;
}, 300)
}
function change() {
$state.go('profile')
}
$q.when(beginn()).then(change);
});
HTML:インターバル中にあなたの変数のスコープ緩いトラックは、あなたがスコープは、あなたが使用して変更を行ったことを知らせる必要があるので、私はあなたが何を見ていないと思います
<p>{{typewriter}}</p>
ありがとうございます。あなたはまだ私の約束に間違っていたことを教えてもらえますか?この事件ではなく、間違いがどこにあるのかを知りたいだけです。ありがとうございました! – web2016
@ web2016あなたは 'begin'関数で約束を返す必要があり、文字のプッシュが終わったらそれを解決する必要があります。私は編集と働くplnkrを追加しました。 – CozyAzure