我想在 AngularJS 中声明我自己的指令,它将文件的字符串源作为属性,它必须加载,然后以某种方式修改并显示。
我有一个AngularJS指令和过滤器定义如下 -
app.directive("customTag", function ($compile) {
return {
restrict: 'E',
require: 'src',
scope: {
value: "=src"
},
template: '<div ng-bind-html-unsafe="value | myFilter"></div>',
replace: true
};
});
app.filter('myFilter', function () {
return function (value) {
$http({
url: value,
method: 'GET'
}).success(function (data, status, headers, config) {
value = data; // gets a string value
}).error(function (data, status, headers, config) {
value = "Error getting content";
});
return ModifyString(value);
};
});
相应的 HTML 是 -
<customTag src="/test.txt"></customTag>
但是,这给了我一个错误,说$http
没有在范围内定义。我该如何解决?
此外,我认为我会遇到$http
调用将是异步调用的问题,因此在读取文件后过滤器不会返回正确的值。