通过URL获取svg数据的Angular指令
Angular Directive for svg data through URL
我想创建一个角指令,我可以得到svg数据。现在我有下面的指令——(下面的一个工作正常)
svgData.directive('myMap', function($http) {
console.log("In directive");
return {
restrict: 'EAC',
templateUrl: 'path_name/myMap.tmpl.html',
replace: true,
scope: {
data: '='
},
link: function(scope, element, attrs) {
console.log(scope, element, attrs);
}
};
});
在myMap.tmpl.html中,我可以按照以下方式导入svg文件——
<embed type="image/svg+xml" src="http://localhost:8080/data/svg/myMap.svg"></embed>
在服务器端——文件
的路由 app.get(api + '/data/svg/:fileName', mySvg.getSVGData);
this.getSVGData = function(req, res) {
var fs = require('fs')
, filename = 'path_name'+req.params.fileName;
console.log('Getting file', filename);
res.writeHead(200, {"Content-Type":"image/svg+xml"});
fs.readFile(filename, "utf8", function(err, data) {
if (err) {
console.log(err);
throw err;
}
res.write(data);
console.log(data);
res.send(filename);
res.end();
});
}
现在我不想在模板中直接给出url。我想写src={{scope}}
或<my-map src="{{scope}}"></my-map>
任何建议。
我打算推荐使用ng-src来做你想要的,但显然有一个问题,嵌入不能正确更新。
看看上一篇文章:https://github.com/angular/angular.js/issues/339
他的指示将允许你做你想做的事。只需在模板中使用它,并将{{url}}替换为包含url的作用域变量。<embed embed-src="{{url}}" type="image/svg+xml"></embed>
相关文章:
- 将JSON对象传递给angular指令
- Angular指令在alertify setContent内容中不起作用
- 在其他javascript框架模板中运行angular指令
- 如何动态禁用Angular指令
- 在 Angular 指令中,如何进行回调,其中函数名称位于父范围的变量中
- Angular指令中的最佳实践是将文本输入设置为英尺和英寸的格式
- 不适用于动态数据的Angular指令来自$http
- 这段jquery代码在angular指令中不起作用
- Angular 指令似乎没有使用元素传入的选项执行
- 带有Angular指令的HTML;附加时无法工作
- 如何使用angular指令从html中获取数组
- 如何正确控制Angular指令的$dirty和$pure状态
- 在 Angular 指令中定义一个用于 ng-click 的函数
- HTML 标记在使用 Angular 指令时被视为纯文本
- 当 Angular 指令的名称真正重要时
- 如何将侦听器添加到 Angular 指令中
- 嵌套的Angular指令触发父对象上的作用域函数
- 在ui路由器中以Webpack块的形式懒惰地加载Angular指令
- 超链接;编译angular指令内的模板后无法工作
- 用angular指令构建嵌套树