0

フィルターを使用して現在解決している問題がありますが、もっと賢くて簡単な方法があるはずです。

このビューを得ました:

<ul id="FilesView" class="FilesView">
    <li ng-repeat="object in folder.content.object" class="{{object.type}}">
        <img src="object.thumbnails.list | thumbPrinter">
        {{object.name}}
    </li>
</ul>

そしてフィルター

angular.module('appFilters', []).filter('thumbPrinter', function() {
    if (media.type === 'file') {
        media.src   
    }else{
        '/images/folder.jpg'
    }
});

そしてXML

<object>
    <type>folder</type>
    <name>Photos</name>
    <complete_path>/Photos</complete_path>
    <complete_path_hash>00e474bd8bd7deaff259</complete_path_hash>
    <date_created>2013-03-06 16:33:28</date_created>
    <date_updated>2013-03-06 16:33:28</date_updated>
    <deleted>false</deleted>
</object>

今、これは機能しています。しかし、それは醜く、問題があります。

次のような問題-img srcを取得した場合にのみimgタグを印刷し、フォルダーをbg imgとしてスパンしたいとしましょう。現在のシナリオでは、私はできません。

文字列だけでなく、必要に応じてHTMLを挿入するにはどうすればよいですか? それを行う正しい方法は何ですか?

ありがとうございました。

4

2 に答える 2

1

ng-show または ng-switch を使用して、条件に基づいて HTML のさまざまなチャンクを表示できますか?

編集: 別のオプションは、挿入する html のタイプを決定するディレクティブを使用することです。

于 2013-05-13T21:34:18.957 に答える
1

ngBindHtmlを使用できます。これにより、「安全でない」HTML が挿入されなくなります。ngBindUnsafeHtmlを使用することもできますが、スクリプト インジェクションなどのさまざまな危険にさらされます。

しかし、物事を「角度のある方法」で行うという観点からは、Ketan が提案することを行うのが最善です。

ngBindHtml は別の .js ファイルに存在することに注意してください。

于 2013-05-13T21:52:56.743 に答える