2016-11-09 15 views
6

मैं बहुत की तरह एक वस्तु चर के साथ NgStyle निर्देश उपयोग करने के लिए कोशिश कर रहा हूँ:कोणीय 2 में NgStyle निर्देश के लिए ऑब्जेक्ट कैसे पास करें?

@Component({ 
     template: ` 
      <div [ngStyle]="object"> 
       some test text 
      </div>` 
    }) 

export class example { 
    private object: string = "{background-color: 'white'}"; 
} 

मैं भी object = "background-color: 'red'" और [ngStyle]="{object}" साथ की कोशिश की, लेकिन ऐसा लगता है यह काम नहीं करता है। मुझे संदेश त्रुटि मिलती है:

Error: Uncaught (in promise): Error caused by: Cannot find a differ supporting object '{color: 'white'}'(…)consoleError @ VM1051 [email protected]?main=browser:346_loop_1 @ VM1051 [email protected]?main=browser:371drainMicroTaskQueue @ VM1051 [email protected]?main=browser:375ZoneTask.invoke @ VM1051 [email protected]?main=browser:297

मैं क्या गलत कर रहा हूं?

+1

"एक वस्तु के रूप में, ऐसा है" लेकिन आप एक स्ट्रिंग पास करते हैं। – msanford

उत्तर

11

एक string[ngStyle] के पास मत करो, एक Object गुजरती हैं और यह काम करेगा:

private object: Object = { 'background-color': 'red'}; 
+0

टेम्पलेट-बाइंडेबल गुण सार्वजनिक होना चाहिए –

2

मैं ngStyle के साथ एक समान मुद्दा था, और यह तय हो गई इस प्रकार है:

[ngStyle]="{'top.px':dtPickerTop, 'left.px':dtPickerLeft}" 

dtPickerTop & dtPickerLeft एक क्लिक ईवेंट के आधार पर मेरे घटक में सेट हैं।

.px जोड़कर यह काम करता है, जबकि इसके बिना, ऐसा प्रतीत नहीं होता था।

संबंधित मुद्दे