$scope
変数から表示する html を追加したいと思います。angular-ui navbar 内に追加したい。生成されたコードはブラウザで確認すると完全に正しいのですが、追加の css スタイルがすべてを壊しているようです。
私のhtmlは次のようになります:
... navbar headers
<ul class="nav navbar-nav" ng-bind-html="menuHTML"></ul>
app.js は次のとおりです。
var myApp = angular.module('myApp', ['ui.bootstrap','ngSanitize']);
myApp.controller('NavBarCtrl', function($scope, $http, $window,$sce) {
$scope.isCollapsed = true;
$scope.changeLanguage = function (language){
console.log(language);
var url = $window.location.href;
if (url.indexOf('?') > -1){
url = url.substr(0,url.indexOf("?"));
url += '?language='+language;
}else{
url += '?language='+language;
}
$window.location.replace(url);
};
$http.get('headerMenu').success(function(res){
console.log('header ok');
$scope.headerMenuHTML = $sce.trustAsHtml(res);
});
});
レンダリングされたページは期待どおりに見えますが、ドロップダウン メニューが機能しません。動作しない html をブラウザーからコピーし、手動で印刷せずにスタイルng-bind-html
を削除すると、ng-binding
すべて問題ありません。
cssを追加せずにng-bind-htmlにhtmlを追加させるにはどうすればよいですか? もう1つの方法は、ここで回答されているように独自のディレクティブを作成することですが、コピーペーストされたコードは機能しません。おそらく質問の作成者はすべてを表示していないため、重要なモジュールを含めなかったり、セミコロンを見逃したり、コントローラーディレクティブの宣言順序を間違えたり(?)したりしました。
迷惑な余分な css なしで ng-bind-html を使用する方法、または正しい独自のディレクティブの例を提供する方法を誰か教えてもらえますか?