2016-09-05 94 views
2

我現在有在ng-class下面的表達式,在AngularUI引導模態的視圖:AngularJS ngClass表達和數組組合

<div class="modal-body mdl-body" 
    ng-class="{ 'is-msg': vm.message.type == 'msg', 
       'height-limit': vm.message.hasHeight }"> 

但我也想通過自定義類的數組,像這樣:

ng-class="vm.message.classes" 

這是模態被稱爲在控制器:

modalService.open({ 
    type: "okay", 
    title: "Terms & Conditions", 
    content: $scope.APISettingData.signup_term_and_condition, 
    classes: ["h-md", "text-info"], 
    isHtml: true, 
    hasHeight: true 
}); 

兩種方式都沒有對方,但當我試圖將它們結合起來時,它們不起作用。

可以做到這一點嗎?請告訴我一些想法和解決方案。

+1

一個想法,你可以試試這個示例應用程序,是創建另一個容器,內部或外部...不是最好的解決辦法,雖然 –

+1

'納克級'是一個非常簡單的指令,你可以隨時做出自己的決定,這正是你想要的。接受數組或其他。 –

回答

1

將ng類指定給scope中的變量會更好。即ng-class = customClasses

和在controller這樣的事情。這樣做可以使您完全控制必須在模式上應用哪些類。

編輯: 入住plnkr

$scope.customClasses = { 
    'is-msg': $scope.message.type == 'msg', 
    'height-limit': $scope.message.hasHeight, 
    "h-md" : true, 
    "text-info": true 
}; 
+0

我們仍然需要預先定義類,我想通過我想要的任何類。 – Nhan

+0

'我想通過我想要的任何課程'這實際上意味着什麼? –

+0

誤會,我明白你的意思,但我仍然需要使用表達式,它們在應用程序的其他部分都需要。 – Nhan