2014-11-04 68 views
0

的子元素的值我有这些指令得到指令

app.directive("myarticle",function($timeout){ 
    return { 
    restrict: "E", 
    replace: true, 
    templateUrl: "templates/article.html", 

    link: function(scope, element, attrs) { 

    element.getVal() 
    } 
    , 
    scope: { 
    cat: "=", 
    mainurl: "=" 
} 
    } 

}); 

这里是指令模板

<div class="span2 "> 
    <a href="#/cat/{{cat.id}}"> link to cat</a> 
</div> 

jQuery的GETVAL功能

(function($) { 

    $.fn.getVal = function() { 

    this.each(function() { 
    var url =$(this).find("a").attr("href"); 
console.log(url); 
}); 
    }; 
})(jQuery); 

的功能是如此长,我试图简化它,因为我可以

我的预期呈现为“#/猫/ 1” 但什么是呈现为“#cats/{{cat.id}}”

所以我怎样才能表达式的值不表达它自

+0

这里类似的问题:http://stackoverflow.com/questions/26660495/can-i-得到-编译-HTML-的-AN-角元件的/ 26660649#26660649 – 2014-11-04 17:36:14

回答

0

你必须使用ng-href(而不是href)在你的模板:

01:摘要周期之后

<div class="span2"> 
    <a ng-href="#/cat/{{cat.id}}"> link to cat</a> 
</div> 

而且在$timeout包裹getVal()方法来检索href属性

$timeout(function() { 
    element.getVal(); 
}) 

PS:我不知道你想达到什么目标,但是将属性值从你的模板读入你的范围绝对不是最佳实践。一个更好的想法是构建href属性,在指令中使用它直接在您的视图(如scope.carUrl = '#/cat/' + cat.id'然后<a ng-href="{{catUrl}}">