如何根据下拉框的值设置Angular指令"ng-init"的新值<select>?



所以我想在选择了特定选项时为ng-init设置一个值。如果尚未选择该特定选项,或者已更改,我想删除ng-init值。

<select id="exSelect" onchange="checkButton()">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<textarea type="text"
class="form-control"
ng-model="vm.request.description"
name="description" id="description"
rows="10" placeholder="Must be atleast 50 characters."
ng-minlength="50"
required>
</textarea>
function checkButton()
{
var dropdownValue = document.getElementById("exSelect");
if (dropdownValue.value == "3") {
//Why does this not work?
document.getElementById("description").ng-init = 'Example attribute setting';
} else {
document.getElementById("description").ng-init = '';
}
}

这段代码是我现在正在做的事情的超级简化的示例版本,但总的来说,我试图作为一个更大的程序的一小部分来做。因此,我希望每次选择新选项时都运行checkButton()函数。如果选择 3,我希望 if 语句执行并将元素的"ng-init"属性设置为函数中的文本,其中 Id 为"description"。如果选择了另一个选项,我希望checkButton()函数再次运行,它将ng-init属性设置为空。

首先使用ng-modelng-change指令:

<select id="exSelect" ng-model="vm.sel1" ng-change="vm.checkButton()">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>

然后在控制器中:

vm.checkButton = function() {
if (vm.sel1 == "3") {
vm.request.description = 'Example attribute setting';
} else {
vm.request.description =  = '';
};
});

最新更新