ng-model 未在指令中更新

ng-model not updating in directive

我的 ng-model 绑定到 filterDetails.value 似乎有问题。它将显示值 "Test",但是当我将值更新为 "Test1234" 并单击按钮执行 filterColumn() 时,警报显示 "Test" 而不是更新后的值。如果我再次将该值更新为 "Test12345" 并单击它显示 "Test1234" 的过滤器按钮。它总是落后一个更新。我正在使用 angular 版本 1.2.24。这个特定的弹出窗口正在 ng-grid 中的 header 单元格模板中使用。我在页面上的其他内容中添加了一个弹出窗口,它工作正常,所以它似乎与在 ng-grid.

中使用它有关
 app.directive('popOver', function ($compile) {
        var filterTemplate = "<div><input type=\"text\" ng-model=\"filterDetails.value\"></input><button style=\"margin-left:5px;\" ng-click=\"filterColumn()\">Filter</button></div>";
        var getTemplate = function () {
            var template = filterTemplate;
            return template;
        }
        return {
            restrict: "A",
            link: function (scope, element, attrs) {


                scope.filterDetails =
                        {
                            value: "Test"

                        };
                scope.filterColumn = function () {
                    alert(scope.filterDetails.value);
                };


                var popOverContent;
                var html = getTemplate();
                popOverContent = $compile(html)(scope);
                var options = {
                    content: popOverContent,
                    placement: "bottom",
                    html: true,
                    title: scope.title,
                    container: "body"
                };
                $(element).popover(options);


            },
            scope: false
    };
    });

您使用的 angular 是什么版本?您可能需要升级 angular 的版本。我将一个快速的 jsfiddle 和你的指令放在一起,使用 angular 1.3.15 和 1.2.28

对我来说似乎工作正常
//angular 1.3.15

http://jsfiddle.net/x5o9s27a/

//angular 1.2.28

http://jsfiddle.net/ge7bqh4n/