当我打开kendo窗口时,我正在尝试根据后端的值启用/禁用单选按钮。我在HTML中使用了ng-disabled
angular.isDefined
和angular.isUndefined
,但它无效。这是我的代码如下。
根据下面的后端数据,应禁用此渐进式单选按钮。
<div class="col-md-6 zero-left-padding ligther" style="margin-left:-107px;">
<label for="progressive">
<input type="radio" id="progressive" name="version"
ng-model="adhocTranscode.version" ng-value="24"
ng-disabled="{{angular.isUndefined(jobDetails.aes_data.instance_type_urlmap.nonlinear-progressive) && angular.isDefined(jobDetails.aes_data.instance_type_urlmap.broadcast) }}"/>
<span style="font-weight:lighter;">Progressive </span>
</label>
后端JSON对象:
"aes_data" : {
"instance_type_urlmap" : {
"broadcast" : "file://int/edam/mbr/broadcast/0067/0067031_CQ-0101_I.MXF"
}
答案 0 :(得分:0)
一种方法是将其更改为以下代码:
<input type="radio" id="progressive" name="version"
ng-model="adhocTranscode.version" ng-value="24"
ng-disabled="jobDetails.aes_data.instance_type_urlmap.nonlinear-progressive === undefined && jobDetails.aes_data.instance_type_urlmap.broadcast !== undefined }}"/>
请注意, angular.isUndefined 已替换为 === undefined ,并且 angular.isDefined 已被替换通过 !== undefined 。
问题可能是在html上下文中未定义angular。如果想要使用angular.isDefined或angular.isUndefined,则将结果赋值给变量,然后在html中使用变量。
JS:
var vm = this;
vm.result = angular.isDefined(someVariable);//false
vm.result2 = angular.isUndefined(someVariable);//true
HTML:
<input ng-disable="vm.result"></input><!--Enabled-->
<input ng-disable="vm.result2></input><!--Disabled-->