Javascript 是否在打印功能之前不进行渲染?

Javascript 是否在打印功能之前不进行渲染?,javascript,angularjs,Javascript,Angularjs,问题是,在加载角度变量之前调用了print函数,所以在视图中,我会得到类似这样的东西,{{ticketPin}}等等……有什么建议吗?在调用print函数之前,我如何渲染角度参数 我有accountContentController其中我有: $scope.printFunction = function () { localStorage.setItem("payoutTime", $scope.testpayoutTime); localStorag

问题是,在加载角度变量之前调用了print函数,所以在视图中,我会得到类似这样的东西,
{{ticketPin}}
等等……有什么建议吗?在调用print函数之前,我如何渲染角度参数

我有
accountContentController
其中我有:

 $scope.printFunction = function ()
    {
        localStorage.setItem("payoutTime", $scope.testpayoutTime);
        localStorage.setItem("payoutAmount", $scope.testpayoutAmount);
        localStorage.setItem("pin", $scope.testticketPin);
        $window.open("/print");

    }
$window.print();
我有printController,我有:

 $scope.printFunction = function ()
    {
        localStorage.setItem("payoutTime", $scope.testpayoutTime);
        localStorage.setItem("payoutAmount", $scope.testpayoutAmount);
        localStorage.setItem("pin", $scope.testticketPin);
        $window.open("/print");

    }
$window.print();

使用ng斗篷或ng绑定来摆脱{{ticketpin}

<span ng-bind="ticketpin"></span>

Id取决于您是从promise还是以其他方式加载到作用域。 但在这两种情况下,都可以在这些特定参数上设置watch。 Watch具有新旧变量的参数,您可以检查旧值(假设为null或未定义)是否由新值(假设要打印此值)交换。 因此,设置手表:

$scope.$watch(function(){ 
    return $scope.testpayoutAmount;
}, function(newVal,oldVal) { 
    if ( newVal != oldVal ) {
        $window.print(); 
    }
});
问题是,如果你有三个变量,你想知道每个变量是否都改变了。 您可以将计数器设置为计数为三:

$scope.$watch(function(){ 
    return $scope.testpayoutAmount + $scope.var2 + $scope.var3;
}, function(newVal,oldVal) { 
    if ( newVal != oldVal ) {
        $scope.count++;
    }
    if ( $scope.count == 3 ) 
        $window.print();
});

这里我假设一个变量只能更改一次,所以从未定义到某个值。若有可能更改两次或两次以上,那个么这个解决方案就并没有意义,因为在运行应用程序之前,你们必须知道更改的总数

当我使用ng-Dope时,我得到一个空白的打印页面。ng-Dope在css规则中添加了display:none是的,但我认为这不是一个问题……问题是在打印之前渲染角度,所以我得到{{ticketPin}而不是真正的值当我使用你的第一个示例时,我没有得到打印函数它只是打开我的视图,但它没有调用打印函数你调用$window.print进行一些操作吗?点击等?在我的示例中,它将在变量更改后加载,但您可以将(count==3)作为允许打印的条件。。。。我想做的是点击打开新窗口,填充一些数据,然后调用打印函数……你们现在明白了吗?为什么不加载变量?这是因为承诺带来的人口吗?或者从本地存储加载?我不知道…我知道当我发出警报时,我会得到值,但当它调用打印函数时,我会得到{{ticketPin}}而不是实际值可能的重复值