【发布时间】:2016-03-02 15:25:12
【问题描述】:
我的页面上有多个链接。在许多链接中,我只想根据数据库值禁用特定链接。我已将锚标记的 ID 与 Firebase 中的数据库 ID 保持一致,以便根据值禁用该特定 ID 的链接。
<a id="{{page.$id}}" ng-href="#/edit/{{page.$id}}/" target="_blank">Add</a>
如果我点击一个按钮,那么我添加了下面的代码,它工作正常:
<button type="button" class="btn btn-primary" ng-click="complete(page.$id)">Complete</button>
$scope.complete=function(id)
{
var target=angular.element("a#"+id);
console.log(target);
target[0].hidden=true;
var elem= angular.element(id);
elem.context.activeElement.disabled=true;
}
上面的代码console.log返回给我这样的元素:
[a#-KBp32nu3tfHPpKvlBqW, prevObject: x.fn.x.init[1], context: document, selector: "a#-KBp32nu3tfHPpKvlBqW"]
0: a#-KBp32nu3tfHPpKvlBqW
context: document
length: 1
prevObject: x.fn.x.init[1]
selector: "a#-KBp32nu3tfHPpKvlBqW"
__proto__: x[0]
通过这个,我能够获取特定的锚标记 ID 并能够隐藏该元素。 但是,当我尝试在控制器上应用相同的代码以便在页面加载时禁用/隐藏元素时,此函数将返回 parentDOM 的元素。 我在控制器上的代码如下所示:
refUpdate=new Firebase("https://databseURL/"+newId);
refUpdate.on('value',function(snapshot){
var status= snapshot.child("completed").val();
if(status=="yes")
{
var target= angular.element('a#'+newId);
console.log(target);
}
});
[prevObject: x.fn.x.init[1], context: document, selector:"a#-KBp32nu3tfHPpKvlBqW"]
context: document
length: 0
prevObject: x.fn.x.init[1]
selector: "a#-KBp32nu3tfHPpKvlBqW"
__proto__: x[0]
所以我无法获得选择器值。 任何想法如何做到这一点?
【问题讨论】:
-
你可以使用
ng-class -
@RayonDabre 好吧,我认为 ng-class 将使页面上的所有链接都被禁用,Lani 说链接正在动态填充!
-
@CEOUnderworld,
scope值更改后,消化循环再次运行..所有指令都将通过..
标签: javascript jquery html angularjs