当锚标记是从属性文件加载UI的SREF不能正常工作
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当锚标记是从属性文件加载UI的SREF不能正常工作相关的知识,希望对你有一定的参考价值。
条目属性文件
MYKEY= <a ui-sref="mystate.state">Go to my page using state</a> and <a href="/#/mypage/page">Go to my page using link/a>
我已经赚得了这个关键的属性文件和应用$sce.trustAshtml()
它,并在HTML中使用。我可以通过链接查看链接,进入我的网页,但使用状态不正常,因为它有ui-sref
标签进入到我的网页。可有人请说明原因,它不工作,并解决这一点。
注:ui-sref
在我的项目中正常工作时,它在HTML中直接使用。
答案
这可能是因为内容没有被编译,因此ui-sref
不工作。
我发现下面的指令,它编译并插入HTML代码,请查看是否能解决您的问题!
该指令从这个SO Answer了
var app = angular.module('myApp', []);
app.controller('MyController', function MyController($scope) {
$scope.test = function() {
console.log("it works!");
}
$scope.html = '<a ui-sref="mystate.state">Go to my page using state</a> and <a href="/#/mypage/page">Go to my page using link</a><button ng-click="test()">click</button>{{asdf}}';
});
app.directive('compile', ['$compile', function ($compile) {
return function(scope, element, attrs) {
scope.$watch(
function(scope) {
// watch the 'compile' expression for changes
return scope.$eval(attrs.compile);
},
function(value) {
// when the 'compile' expression changes
// assign it into the current DOM
element.html(value);
// compile the new DOM and link it to the current
// scope.
// NOTE: we only compile .childNodes so that
// we don't get into infinite loop compiling ourselves
$compile(element.contents())(scope);
}
);
};
}])
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
<div ng-controller='MyController' ng-app="myApp">
<div compile="html"></div>
</div>
以上是关于当锚标记是从属性文件加载UI的SREF不能正常工作的主要内容,如果未能解决你的问题,请参考以下文章
UI-Router 不使用 ui-sref 注册动态创建的元素