2017-01-13 3 views
0

Я довольно новичок в угловых и директивах, но пока я составлял настраиваемую директиву для своего приложения, я понял, что я использую переменные и область взаимозаменяемо без проблем.Переменные или область использования внутри директив

Например, у меня есть scope.onBreak = false и var 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

Вы должны использовать переменные, когда вам не нужно передавать данные в представление, так как это быстрее.

Если вам нужно использовать эти данные в представлении, используйте область.

0

переменные области привязки к представлению DOM. Но var не может связываться, а функциональность мудрая только мы можем использовать в JS.

Смежные вопросы