2015-06-11 21 views
4

在我的指導,我正在從元素ATTR(NG-重複)的性能和使用directive內部範圍,就像這樣:是否有解決方法將對象直接轉到指令作用域?

<program-name name="{{appName.title}}" percent="{{appName.percent}}" company="{{appName.company}}" data-page="Home" index="{{$index}}" ng-repeat="appName in appNames"></program-name> 

,並在指令:

scope: { 
    name: '@', 
    index: '@', 
    percent: '@', 
    company: '@' 
}, 

作品精細。但如果我需要從對象中獲取所有屬性,這只是一種方式?說我在我的appName對象中有20個peroperties,那麼它是否需要像這樣通過20個?

是否有任何方法可以將所有這些屬性直接從元素獲取爲對象?

如果是這樣,該怎麼做?

這裏是fiddle

回答

5

你可以給你的指令的應用程序的名字對象

JS

scope: { 
     appName: '=' 
     }, 

HTML

<program-name app-name="appName" ng-repeat="appName in appNames"></program-name> 
4

有沒有什麼辦法可以將所有這些屬性作爲對象直接從 這個元素擴展到作用域?

是的,您可以在指令的隔離範圍內使用=運算符。這也將確保雙向綁定。

scope:{ 
     appName: '=' 
     } 

而且,請注意,如果你想在你的指令從應用程序的名字的所有屬性,然後創建隔離範圍。如果你沒有指定scope:{}那麼指令將採用與其使用的模板相同的範圍!

相關問題