【发布时间】:2014-01-25 22:15:07
【问题描述】:
我是 AngularJS 新手。
我希望在加载部分时传递数据。
我想要一个允许动态属性的指令。例如,在我可以拥有的范围内定义对象“公司”的视图中:
<partial url:"employees/index.html" query_string: "Fun House Inc" employees="company.employees">
并且在定义对象“员工”的视图中:
<partial url:"employees/show.html" employee="employee">
下面是我写的(在咖啡脚本中)几乎可以工作的指令。在上面的示例中,query_string 属性被传递(感谢链接函数中的 scope[k] = v),但 employees 属性没有传递,即它传递的是字符串而不是评估的对象。
App.directive "partial", ->
restrict: "E"
scope:
attribute: "@"
expression: "&"
model: "="
array: "="
data: "="
templateUrl: (el,attrs)->
"/assets/partials/" + attrs.url
link: (scope,el,attrs)->
for k, v of attrs
scope[k] = v if (k[0] != "$" && !scope[k]?)
在这个指令中,我定义了数组、模型和数据,所以我可以通过做类似的事情来解决我的问题
<partial url:"employees/index.html" query_name: "Fun House Inc" array="company.employees">
和
<partial url:"employees/show.html" model="employee">
在我看来。也就是说,我对这个解决方案并不满意,我很惊讶没有现成的解决方案。我对这一切都错了吗?有没有更好的方法来做到这一点,或者修复我的指令以使其按我想要的方式工作?
【问题讨论】:
标签: javascript angularjs coffeescript angularjs-directive