2017-02-20 34 views
1

有沒有一種方法/插件可以撥打$parents["ExamViewModel"]而不是$parents[2]打電話給家長姓名

這對於可能在不同父視圖中顯示的共享視圖會非常有幫助。

+0

提示:如果你有這樣的問題,你必須公關可以重新思考你的概念。這是一種直接給父母打電話的代碼味道。總是試圖將事情從父母傳遞給孩子。 –

+0

同意,努力清除它 – user2769267

回答

0

不,沒有這樣的事情。

您可以使用instanceof作爲更清潔的方式來創建自己的方法。

喜歡的東西:

function findParentOfType(parents, targetType) { 
    for (var i = 0; i < parents.length; i++) { 
     if (parents[i] instanceof targetType) return parents[i]; 
    } 
    return null; 
} 

用法:

findParentOfType($parents, ExamViewModel) 

例子:

function Class1() { 
 
\t this.name = 'MyClass1'; 
 
} 
 

 
function Class2() { 
 
\t this.name = 'MyClass2'; 
 
} 
 

 
var parents = [new Class1(), new Class2()]; 
 

 
function findParentOfType(parents, targetType) { 
 
    for (var i = 0; i < parents.length; i++) { 
 
     if (parents[i] instanceof targetType) return parents[i]; 
 
    } 
 
    return null; 
 
} 
 

 
console.log(findParentOfType(parents, Class2).name);

+0

謝謝! for(var i = 0; i user2769267

+0

@ user2769267 oops,fixed –

+0

獲取instanceof右側的錯誤不是一個對象,任何想法? – user2769267