2016-04-14 42 views
0

我有一个名为“showFileBrowser”的AngularJS指令有问题。我想在我的模板中使用Javascript,但它不会在我的浏览器中执行。这里是我的代码:AngularJS指令模板不执行Javascript

app.directive("showFileBrowser", function() { 
    return { 
     restrict: 'E', 
     template: '<script>$("#searchNote").fileTree({data: scope.filedata,sortable: false,selectable: false});</script>' 
    } 
}); 

有人知道为什么我不能在指令中执行JavaScript或知道如何做到这一点?

回答

2

你不需要使用id,直接使用'element'。

app.directive("showFileBrowser", function() { 
    return { 
     restrict: 'E', 
     link: function($scope, element, attrs) {  
      $(element).fileTree({data: scope.filedata,sortable: false,selectable: false}); 
     } 
    } 
}); 
+0

感谢您对element参数的建议。但它仍然不工作。 –

+0

你控制台可能已经解雇了错误,就像filedata问题,因为我失败了,它是'$ scope.filedata'而不是'scope.filedata'。尝试把console.log来帮助你 –

+0

没有我的控制台不显示任何东西。它看起来像一切正常。我的答案向你展示了一种可行的方法。 –

0

它工作正常,如果我返回一个函数,但我更喜欢返回一个对象。

app.directive("showFileBrowser", function() { 
    return function(scope, element, attr) { 
     $(element).fileTree({data: scope.filedata,sortable: false,selectable: false}); 
    }  
});