2015-06-23 96 views
1

這看起來應該是一個簡單的問題,但我最初認爲這涉及到更多的參與。如何在Angular Foundation Popover內容中添加換行符?

我在我的Angular Foundation Popover指令中有幾個項目,我想用換行符分開。

.div{ 'popover' => "Name: {{ user.name }} /br Age: {{ user.age }}", 'popover-trigger' => 'click' } 

什麼是解決方案添加一個換行符是/ br是在這行html?

回答

0

這很棘手。如果您正在使用angular-foundation(我真的推薦使用它),你可以修改官方酥料餅的模板是HTML不安全 - 比你可以使用popovers HTML:

JS

"use strict"; 

// app definition - don't forget to include angular-foundation module 
angular.module("app", ["mm.foundation"]); 

// just o controller, nothing special 
angular 
    .module("app") 
    .controller("MainController", MainController); 

    function MainController() { 
    var vm = this; 

    vm.name = "John Doe" 
    vm.email = "[email protected]" 
    } 

// unsafe filter - this is used in the template below 
angular 
    .module("app") 
    .filter("unsafe", unsafe) 

    function unsafe($sce) { 
    return function (val) { 
     return $sce.trustAsHtml(val); 
    }; 
    }; 

// oficial popover template modification 
angular 
    .module("template/popover/popover.html", []) 
    .run(["$templateCache", function($templateCache) { 
    $templateCache.put("template/popover/popover.html", 
     "<div class=\"joyride-tip-guide\" ng-class=\"{ in: isOpen(), fade: animation() }\">\n" + 
     " <span class=\"joyride-nub\" ng-class=\"{\n" + 
     " bottom: placement === 'top',\n" + 
     " left: placement === 'right',\n" + 
     " right: placement === 'left',\n" + 
     " top: placement === 'bottom'\n" + 
     " }\"></span>\n" + 
     " <div class=\"joyride-content-wrapper\">\n" + 
     " <h4 ng-bind-html=\"title | unsafe\" ng-show=\"title\"></h4>\n" + 
     " <p ng-bind-html=\"content | unsafe\"></p>\n" + 
     " </div>\n" + 
     "</div>\n" + 
     ""); 
}]); 

HTML

<main ng-app="app" ng-controller="MainController as vm"> 
    <div class="row"> 
    <div class="small-12 column"> 
     <div popover="{{vm.name + '<br />' + vm.email}}" popover-trigger="mouseenter"> 
     <h1>Hover me!</h1> 
     </div> 
    </div> 
    </div> 
</main> 

在這裏你正在工作CodePen example

你也可以製作自己的指令,同時擁有HTML安全彈出框和HTML不安全彈出框 - 或者你可以使用tooltip,它支持默認的HTML不安全(指令tooltip-html-unsafe)。

+0

有趣!我想這是一個解決方案。唯一的問題是,每次更新角度基礎時,你都必須一遍又一遍地做這件事。我想知道是否有更簡單,更持久的解決方案?如果幾天後我沒有聽到別人的消息,我會用你的答案作爲答案。謝謝! – JCC

+0

@JDC您不必修改庫本身,因此不需要每次更新都修改角度基礎。您可以簡單地將修改放入您自己的文件中 - 它會覆蓋原始模板:-) –

+0

謝謝。我結束了使用你的代碼。具體而言,對於未來可能需要解決方案的人員,我使用Akarienta的JS文件中的「不安全過濾器」和「官方彈出窗口模板修改」下的代碼塊。你只需要將它包含在你的任何角度文件中。請務必將.module(「app」)「app」更改爲您在ng-app中使用的任何內容。另外,您還要確保在mm.foundation加載後您的文件位於資產管道中,以便此修改代碼可以覆蓋原始文件。 – JCC