我制作了一个用于生成 PDF 的 json 文件设计器。
如果您想查看整个代码的运行情况,请打开底部的 plunker 链接。
该视图的行为不符合预期。在调试器中,当我在其 SVG 场景中拖动元素时,模型会立即更改。输入不会改变。但是,如果我在输入框之间单击,它会突然将视图更新为正确的值。
这是我在指令内的范围变量中设置值的地方:
function endDrag(evt) {
if (selectedElement) {
let selectedEntry = scope.data.templateData.find(function(entry) {
return entry.name === selectedElement.getAttribute("data-entry-name");
});
if(selectedEntry){
selectedEntry.x = parseInt(selectedElement.transform.baseVal.getItem(0).matrix.e / scope.data.pdfViwer.zoom);
selectedEntry.y = parseInt(selectedElement.transform.baseVal.getItem(0).matrix.f / scope.data.pdfViwer.zoom);
}
selectedElement = null;
}
}
Run Code Online (Sandbox Code Playgroud)
这是我在控制器中的数据对象:
$scope.data = {
name: "",
type: [{name:'Text',value:'text'}, {name:'Image',value:'image'}, {name:'Line',value:'line'}],
templateData: [{
'type': {name:'Text',value:'text'},
'name': 'test',
'text': 'test3',
'x': 100,
'y': 100
}],
pdfViwer: {
height: 2970,
width: 2000,
zoom: .3
},
output: {
show:true …Run Code Online (Sandbox Code Playgroud)