Angularjs ngif内的动态变量不工作
我有一段这样的代码Angularjs ngif内的动态变量不工作,angularjs,angular-ng-if,Angularjs,Angular Ng If,我有一段这样的代码 ng-show="!edit{{id}} && imageUrl" 但这似乎不起作用。何处为 ng-show="!edit1 && imageUrl" 工作。语法有问题吗 实际代码段 template: '<div id="dropTarget{{imageid}}" ng-show="edit{{imageid}}">'+ '<img id="imageView{{imageid}}" ng-s
ng-show="!edit{{id}} && imageUrl"
但这似乎不起作用。何处为
ng-show="!edit1 && imageUrl"
工作。语法有问题吗
实际代码段
template: '<div id="dropTarget{{imageid}}" ng-show="edit{{imageid}}">'+
'<img id="imageView{{imageid}}" ng-src="{{imageUrl}}" />'+
'</div>'+
'<img id="imageView{{imageid}}" ng-if="!edit{{imageid}} && imageUrl" ng-src="{{imageUrl}}" alt="Coach"/>'+
'<div class="my-new-photo" ng-if="!edit{{imageid}} && !imageUrl">+</div>'+
'<span class="edit-info" ng-click="showUploadImageOptions(imageid)" ng-show="!edit{{imageid}} && imageUrl">EDIT</span>'+
'<span class="edit-info" ng-click="showUploadImageOptions(imageid)" ng-show="!edit{{imageid}} && !imageUrl">NEW</span>'+
'<div ng-show="edit1" class="buttons-section">'+
'<form enctype="multipart/form-data" method="post">'+
'<input type="file" name="filesToUpload{{imageid}}" id="filesToUpload{{imageid}}" style="display:none;"/>'+
'<span class="upl-sav-can" ng-click="uploadImage(imageid)">Browse</span>'+
'<span class="upl-sav-can" ng-click="revertImage(imageid)">Cancel</span>'+
'</form>'+
'</div>',
模板:“”+
''+
''+
''+
'+'+
“编辑”+
“新的”+
''+
''+
''+
“浏览”+
“取消”+
''+
'',
ngShow
需要一种正则javascript表达式(有一定的限制)。因此,请将您在这些情况下编写的内容视为正常的javascript表达式
现在问问你自己:这是!编辑{{id}&&imageUrl
有效的javascript表达式(代码)?当然,不会。当提供的表达式不能作为有效的javascript代码进行分析和计算(服务会这样做)时,Angular会抛出一个错误
然而
ng-show="!edit[id] && imageUrl"
将是使用括号表示法访问对象/数组的变量属性的有效表达式。这就是您在这种情况下需要使用的功能。您尝试执行的操作是不可能的。正如@dfsq所说,
ngShow
需要角度表达式。不能通过在角度表达式中插入作用域变量的名称来访问它
最好的选择是使编辑数组或对象,然后通过索引或键访问其内容
ng-show="!edit[id] && imageUrl"
为什么不做正确的事情并为返回值调用一个方法呢
部分代码:
<span class="edit-info" ng-click="showUploadImageOptions(imageid)" ng-show="returnEditId(imageid) && imageUrl">EDIT</span>
但它不是数组。在JS中,如果我说它类似于'edit'+id,那么它将是ng show=“!(edit+id)&&imageUrl”
@dfsq,我想在表单验证中使用这个条件,比如:-ng if=“{{formName}.{inputFieldName+$index}.$dirty”
在这种情况下,我应该如何在ng if=“
中使用动态名称来更改所有{id}
至+“id”
$scope.returnEditId = function(id){
if(!$scope.edit[id])
return false;
else
return true;
}