2017-01-13 4 views
0

私はかなり新しく角度とディレクティブを使用していますが、私のアプリケーションのカスタムディレクティブを作成している間は、変数とスコープを同じ意味で使用していました。例えばディレクティブ内の変数またはスコープの使用

私はスコープを使用すると、ときに私が利用していない場合、私は、ディレクティブ内で変数を使用する必要があり、これは将来的に問題を引き起こしてしまいます必要がある場合scope.onBreak = falsevar completedSessions = 0

私の質問は、である持っていますそれに応じて。

scope.onBreak = false; 
scope.onLongBreak = false; 
// starts countdown from current work/break time 
scope.timerText = "Work Timer"; 

var completedSessions = 0; 

var timeSet; 


var setBreak = function() { 
    $interval.cancel(timeSet); 
    scope.workTime = MY_TIMES.break; 
    scope.buttonText = "START"; 
    scope.onBreak = true; 
    scope.timerText = "Break Timer"; 
}; 


scope.countdown = function() { 
    if (scope.workTime <= 0) { 
    //if countdown reaches 0 and is on break , set time to 25m (work) 
    if (scope.onBreak) { 
     console.log("currently working"); 
     setWork(); 
    } else { 
     setBreak(); 
    } 

    } 
} else { 
    //countdown 
    scope.workTime--; 
} 
}; 

答えて

0

私はそれを見ての良い方法は、「スコープ」は、コントローラとビューの間で可鍛性(および操​​作可能)リンク(テンプレート)であると言うことだと思います。変数は、コントローラ、ディレクティブ、サービスなどで作業しているクラスの内部にあり、それらのクラスのみが参照します(テンプレートファイルはコントローラの 'foo'という宣言された変数にアクセスできません)。おそらくより説得力のある説明がありますが、誰も何も投稿していないので、私は考えました。

0

データをビューに渡す必要がない場合は、変数を使用する方が高速です。

ビューでそのデータを使用する必要がある場合は、scopeを使用します。

0

スコープ変数はDOMビューにバインドされます。しかし、varはバインドできません。機能はJS内でのみ使用できます。

関連する問題