Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 内插法_Javascript_Angularjs - Fatal编程技术网

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);
            });
        };
    }])