Я создал элемент с угловым директивой с некоторыми входами, и в зависимости от атрибутов элемента входы должны быть установлены со значениями по умолчанию. Вот директива:Установка значений по умолчанию для входов в угловой директиве
.directive('zoneType', ['$compile', function(){
restrict: "E",
require: "^?ngModel",
templateUrl: "zone.html",
link: function(scope, element, attrs, ngModel){
if(!ngModel) return;
var temp = 0;
var press = 0;
if(attrs.region=="top"){
temp = 60;
press = 2;
}else if(attrs.region=="bottom"){
temp = 20;
press = 0.4;
}
element.find("#gas1").val(temp);
element.find("#gas2").val(press);
ngModel.$setViewValue(element.html());
ngModel.$render();
}]);
и шаблон выглядит следующим образом
<form role="form" class="form-inline">
<div class="form-group">
<input placeholder="Gas1" id="gas1" class="form-control" type="number" ng-model="$root.zone[$index].gas1"/>
</div>
<div class="form-group">
<input placeholder="Gas2" id="gas2" class="form-control" type="number" ng-model="$root.zone[$index].gas2"/>
</div>
</form>
$ индекс необходим, потому что форма находится внутри углового Tabset.
я объявляю элемент, как этот
<zone-type region='top' ng-model='zone'></zone-type>
Шаблон загружается правильно, но значения не установлены, это правильный способ сделать это?
Это работает! Но эта директива повторяется на других вкладках, как я могу получить доступ к «темп» и «нажмите» для каждой вкладки в контроллере? –
Как определяется область действия для этой директивы. Лучше всего выделить область, особенно если вы планируете несколько раз указывать одну и ту же директиву на странице. – Will