2015-10-26 35 views
0

我正在嘗試構建從Wordpress CMS中提取內容的前端。到目前爲止,我已經成功地使用WP REST API插件從我的Wordpress實例中提取JSON數據,並使用'ng-bind-html'顯示HTML內容。當從JSON對象中提取角度指令時不會呈現對象

但是,當我嘗試在此代碼中顯示AngularJS指令或表達式時,它似乎不起作用。

這是我的JSON對象的片段。標準HTML標記呈現正常,並且AngularUI標籤指令之間的實際內容也呈現良好。無法正確呈現它,因此拍了一張截圖。

有什麼建議嗎?

Screenshot of JSON Object content

How it is displayed once rendered

+0

代碼在哪裏?你需要添加你到目前爲止嘗試過的代碼,否則你可能會面臨倒計時。 –

+1

'ng-bind-html'不編譯指令。這不是它的目的。需要使用自己的指令並使用'$ compile' – charlietfl

+0

是否可以編譯使用ng-bind引入的指令? – JMcGuire

回答

3

正如在他的評論中提到@charlietfl,ng-bind-html只有interts以安全的方式HTML內容,這是什麼樣的機制的文檔說:

計算表達式以安全的方式將生成的HTML插入到 元素中。默認情況下,生成的HTML內容將 可以使用$的sanitize服務消毒

您需要實現自定義指令您的需求,使得包括HTML內容從你的反應也將使用$compile服務編譯。這可能是這樣的:

app.directive('bindHtmlCompile', ['$compile', function ($compile) { 
    return { 
     restrict: 'A', 
     link: function (scope, element, attrs) { 
      scope.$watch(function() { 
       return scope.$eval(attrs.bindHtmlCompile); 
      }, function (value) { 
       element.html(value); 
       $compile(element.contents())(scope); 
      }); 
     } 
    }; 
}]); 

代碼由在GitHub上angular-bind-html-compile項目的啓發。

+0

感謝您分享這個。我對Angular的$ compile組件不熟悉。只是做了一個搜索,並在這裏找到了一個有用的解決方案> http://stackoverflow.com/questions/19726179/how-to-make-ng-bind-html-compile-angularjs-code – JMcGuire