ng-change 指令没有按预期工作
ng-change directive doesn't work as expected
$scope.invoicename
中存储了发票的数据,其中包含每张发票的 ID、名称和 pdfmake。当用户 select 发票名称时,它应该显示由 selected pdfmake 设计的 pdf 文档。这是我的 html select
<select class="form-control" ng-change="zafakturu(dizajn.pdfmake)" ng-model="dizajn.pdfmake">
<option value={{dizajn.pdfmake}} ng-repeat="dizajn in invoicename" selected="selected">{{dizajn.name}}</option>
</select>
这里是更改时调用的函数和应显示 pdf 文档的函数 makeInvoice。
var makeInvoice = function(doc){
pdfMake.createPdf(doc).getDataUrl(function(dataURL) {
$scope.fajll= dataURL;
});
console.log(doc);
};
$scope.zafakturu = function (pdf){
$scope.docDefinition = eval("(" + pdf + ")");
makeInvoice($scope.docDefinition);
};
这是显示 pdf 的 html 元素。
<object ng-show="fajll" data="{{fajll}}" type="application/pdf" style="width: 100%; height: 400px;"></object>
问题是,当我 select 一个值时,具有该值的 pdf 显示在第二个 selection 之后。例如,如果我有选项 1、2、3,并且我 select 选项 2,则该选项的 pdfmake 将仅在我 select 1 或 3 之后显示。如果有人可以帮忙?
使用 $scope.$apply
让 AngularJS 框架知道作用域变量的变化。
pdfMake.createPdf(doc).getDataUrl(function(dataURL) {
$scope.fajll= dataURL;
$scope.$apply();
});
作为 .getDataURl
方法参数提供的函数正在 AngularJS 框架之外异步执行。 object 元素的 data
属性仅在摘要循环后更新。 $scope.$apply
创建必要的摘要循环。
$scope.invoicename
中存储了发票的数据,其中包含每张发票的 ID、名称和 pdfmake。当用户 select 发票名称时,它应该显示由 selected pdfmake 设计的 pdf 文档。这是我的 html select
<select class="form-control" ng-change="zafakturu(dizajn.pdfmake)" ng-model="dizajn.pdfmake">
<option value={{dizajn.pdfmake}} ng-repeat="dizajn in invoicename" selected="selected">{{dizajn.name}}</option>
</select>
这里是更改时调用的函数和应显示 pdf 文档的函数 makeInvoice。
var makeInvoice = function(doc){
pdfMake.createPdf(doc).getDataUrl(function(dataURL) {
$scope.fajll= dataURL;
});
console.log(doc);
};
$scope.zafakturu = function (pdf){
$scope.docDefinition = eval("(" + pdf + ")");
makeInvoice($scope.docDefinition);
};
这是显示 pdf 的 html 元素。
<object ng-show="fajll" data="{{fajll}}" type="application/pdf" style="width: 100%; height: 400px;"></object>
问题是,当我 select 一个值时,具有该值的 pdf 显示在第二个 selection 之后。例如,如果我有选项 1、2、3,并且我 select 选项 2,则该选项的 pdfmake 将仅在我 select 1 或 3 之后显示。如果有人可以帮忙?
使用 $scope.$apply
让 AngularJS 框架知道作用域变量的变化。
pdfMake.createPdf(doc).getDataUrl(function(dataURL) {
$scope.fajll= dataURL;
$scope.$apply();
});
作为 .getDataURl
方法参数提供的函数正在 AngularJS 框架之外异步执行。 object 元素的 data
属性仅在摘要循环后更新。 $scope.$apply
创建必要的摘要循环。