我是AngularJS新手。AngularJS:呈现部分动态属性
我正在寻找加载partials时传递数据。
我想要一个允许动态属性的指令。例如,在对象“公司”是在范围限定的视图我可以有:
<partial url:"employees/index.html" query_string: "Fun House Inc" employees="company.employees">
并且在对象“雇员”的定义的图:
<partial url:"employees/show.html" employee="employee">
下面是我写的一个指令(在coffeescript中)几乎可以工作。在上面的例子中,query_string属性被传递(感谢链接函数中的作用域[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">
在我的问题破解。这就是说我对这个解决方案并不满意,我很惊讶没有现成的解决方案。我是否全部错了?有没有更好的方法来做到这一点,或者一种方法来解决我的指令,使其按照我想要的方式工作?
感谢您的链接。我不确定他们是我在找什么。我想像一个单一的视图,其中有几个部分加载到它。我来自一个rails背景,并且想要像我使用rails一样构造我的代码(**也许这是错误的方法?**)。为了让你知道我要去哪里...我有一个复杂的模式ModelA has_many ModelB's has_many ModelC's has_one ModelD等等。我想创建一个表单,这将允许我在单个页面上创建/编辑整个树(ModelA及其所有的子/孙)。 – brook
Gotcha。它似乎在网站上有类似的问题,例如http://stackoverflow.com/questions/13422966/how-to-specify-model-to-a-nginclude-directive-in-angularjs。 – user3043124
这是非常接近 - 有很多类似的问题,但我还没有找到任何处理我的要求:templateUrl的动态url(我的指令解决了这个问题),动态数据都作为字符串传递(如“query_string “上面是我的指令),以及需要处理的对象(例如”company.employees“,我只能通过明确命名参数,如**数组**和**数据** )。再次感谢您的帮助。我没有通过你发送的教程,虽然它不是我在这里需要的,但它对我来说会很有用 – brook