2015-12-04 29 views
0

我有一個相當令人沮喪的情況,當這個代碼完美工作時,它自己使用,但如果我嘗試把它放在另一個指令console.log輸出[對象對象]而不是實際的對象。我無法弄清楚發生了什麼事。爲什麼在將數據傳遞給指令時會得到[object Object]?

JS

(function() { 

    'use strict'; 

    angular.module('stn-core') 
     .directive('htmlContent', htmlContent); 

    function htmlContent() { 
    return { 
     restrict: 'AE', 
     templateUrl: 'content-blocks/html-content/html-content.html', 
     scope: { 
     data: "=" 
     }, 
     link: function (scope, elem, attrs) { 
     console.log(scope.data); 
     scope.componentName = 'html-content'; 
     } 
    }; 
    } 

})(); 

模板

{{data | json}} 
<div class="html-content"> 
    <div ng-bind-html="data.data[data.data.type]"></div> 
</div> 

指令造成的問題(另一個指令模板)

<div class="conference-location"> 
    <html-content data="data.topHtml" class="con-location-html1 col-lg-12 col-md-12 col-sm-12 sol-xs-12"></html-content> 
    <div ng-bind-html="data.bottomHtml" class="con-location-html2 col-sm-6 col-xs-12" 
     ng-class="{'col-lg-6 col-md-6':width< 100, 'col-lg-8 col-md-7':width === 100}"></div> 
    <div class="conference-location-widget col-sm-6 col-xs-12" 
     ng-class="{'col-lg-6 col-md-6': width < 100, 'col-lg-4 col-md-5':width===100}"> 
    <stn-location data="data.conference"></stn-location> 
    </div> 
</div> 
+0

你在html中使用這個htmlContent指令的地方。 – Vivek

+0

編輯顯示該指令的位置 – lorless

+0

data.topHtml將有HTML字符串,對不對? –

回答

0

你需要將其控制檯,串並轉換成字符串的位置您可以使用JSON對象的stringify方法。

嘗試如下:

console.log(JSON.stringify(scope.data)); 
+0

這不是真的不夠好,也許我沒有正確的解釋,有時指令解釋「數據「參數作爲可以被導航和使用(因爲它應該)一個js對象,但在我所提到的情況下,它顯示爲字符串‘[對象的對象]’ – lorless

0

因此,基本上不存在與我所用的屬性名的問題。如果我在「數據」,而不是「data.topHtml」過去,我注意到,對象,然後記錄爲這個

data : { 
topHtml: '[object Object]' 
} 

問題出現時使用的名稱包括大寫字母,甚至減號發生。我通過將名稱更改爲tophtml並更新模板來修改它以代替它。

相關問題