使用angular $ compile进行字符串替换

时间:2015-10-27 14:55:07

标签: angularjs

endpointTemplate = "/api/endpoint?city={{city}}&state={{state}}&facility={{facility}}";
var model = angular.extend(scope.$new(), { city: 'Brooklyn', state: 'NY', facility: 'Facility 2' });
var compiled = $compile($('<a>', 
    {  
        //none of these work as i expect
        'ng-href': endpointTemplate,
        'test': endpointTemplate,
        'ng-bind': endpointTemplate 
    }));

var result = compiled(model);

我想得到的价值如下:

"/api/endpoint?city=Brooklyn&state=NY&facility=Facility 2"

但是角度似乎不会使字符串“按原样”(除了ng-bind尝试,它会引发错误)

我该如何做到这一点?

1 个答案:

答案 0 :(得分:1)

您可能会注意到,一旦摘要周期结束,sd将被插值。如果只需要字符串插值,则result使用$compile是不恰当的,请考虑使用$interpolate

  HTML $编译服务使用

进行数据绑定。

它应该是这样的:

var model = { city: 'Brooklyn', state: 'NY', facility: 'Facility 2' };

var result = $interpolate($('<a>', ...)[0].outerHTML)(model);