2014-10-19 25 views
4

有沒有什麼方法可以通過它的名字包含在字符串中訪問模型?Sails.js模型訪問的字符串名稱

例如,如果我想創建一個用戶,而不是做

User.create({name: 'martin'}); 

我需要做的是這樣

sails['User'].create({name: 'martin'}); 

回答

6

到模型的所有文獻都存儲在全局可訪問的對象帆。模型。您可以使用數組文字符號[]來訪問任何模型。

var model = sails.models['users']; 
model.create({name: 'martin'}); 

相同的規則適用於控制器和服務。

+1

另外,請注意,在最新版本的sails中默認隱藏直接訪問sails。你必須在config/globals中設置sails:true來訪問sails.models – 2014-10-20 09:32:30

+1

謝謝你的答案。我發現另一個解決方案: 'global ['users'] .create ....' 哪個更好? – Martin 2014-10-22 22:38:57

+0

我覺得兩者都很好。 我更喜歡使用sails.models ['users']而不是globals ['users']的原因是,即使關閉在config/globals.js文件中公開應用模型,您仍然可以通過sails.mode訪問您的實例。 (正如上面提到的@ mandeep_m91,不要忘記設置sails:true,否則你將無法訪問任何東西) – abeja 2014-10-23 01:03:54

相關問題