Javascript 内插法
我有一个这样的标记Javascript 内插法,javascript,angularjs,Javascript,Angularjs,我有一个这样的标记 <li ng-repeat="macro in macros" style="cursor:pointer" ng-click="copyToChat($event); $hide()"> {{macro}} </li> var macros = [ "Hey {{activeUserName}} ! I'm sorry" ]; {{macro}} 变量宏= [ “嘿{{activeUserName}}!对
<li ng-repeat="macro in macros" style="cursor:pointer" ng-click="copyToChat($event); $hide()">
{{macro}}
</li>
var macros =
[
"Hey {{activeUserName}} ! I'm sorry"
];
{{macro}}
变量宏=
[
“嘿{{activeUserName}}!对不起”
];
这里{activeUserName}}不是插值的。我如何解决它试试这种方法
使用指令从字符串编译您的内容
html
<div ng-app='myApp' ng-controller="Controller">
<li ng-repeat="macro in macros" style="cursor:pointer" ng-click="copyToChat($event); $hide()">
<span compile="macro"></span>
</li>
</div>
这是你的实际加价吗?它似乎无效。什么是
activeUserName
?它是分配给scope的变量,例如$scope.activeUserName=“maddhur”;问题是关于ng repeat内的插值,而您在插值之前重复结束。请参见结束
在范围变量上下文中计算角度的插值。若宏是随机的JavaScript代码段,那个么它将无法工作。你想实现什么?这正是我想要的
var app = angular.module('myApp', []);
app.controller('Controller', function ($scope) {
$scope.macros = ["Hey {{activeUserName}} ! I'm sorry"];
$scope.activeUserName = "maddhur";
})
app.directive('compile', ['$compile', function ($compile) {
return function (scope, element, attrs) {
scope.$watch(function (scope) {
return scope.$eval(attrs.compile);
},function (value) {
element.html(value);
$compile(element.contents())(scope);
});
};
}])