如何在ui导致范围变量更改时重新加载指令模板

uyto3xhc  于 2021-09-29  发布在  Java
关注(0)|答案(0)|浏览(168)

我一直在尝试为模式创建一个指令,但我发现一旦指令模板初始化,通过ui所做的进一步更改将不会导致它更新。它是每次显示的第一个缓存版本。
这是我的指令代码:

'use strict';

angular.module('sample')
.directive('modalPage', function ($timeout) {
    return {
        restrict: 'E',
        templateUrl: 'directives/sampleTemplate.html',
        scope: {
            data: '='
        },
        link: build
    };

    function build(scope, element, attrs) {
        scope.initData = function () {
            // does something that changes the value of var
        };
        scope.$watch('data', function (value) {
            if (value) {
                scope.initData();
            }
        }, true);
    }
});

我的模板sampletemplate.html如下所示:

<div class="modal-dialog modal-lg">
    <div class="modal-content">
        <div class="modal-body" style="padding:5px!important;">
            <div class="card card-6">
                 <div class="card-heading">
                     <h2 class="title">{{ var }}</h2>
                 </div>
                 <div class="card-footer"></div>
            </div>
        </div>
    </div>
</div>

指令将首先呈现模板页面(当var的值未更改时),然后ui交互导致数据更改,调用initdata并将新值分配给var。模式仍显示var的旧值。
我曾尝试使用$compile()并为var的更改设置超时,但两者都不起作用。以前的所有讨论也都不起作用。感谢您的帮助。提前谢谢你!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题