ng-model不在指令中更新

时间:2015-04-08 12:24:48

标签: angularjs ng-grid

我的ng-model绑定到filterDetails.value似乎存在问题。它将显示值" Test",但当我将值更新为" Test1234"然后单击按钮执行filterColumn(),警报显示"测试"而不是更新的值。如果我再将值更新为" Test12345"然后单击它显示的过滤器按钮" Test1234"。它始终是一个更新。我正在使用角度版本1.2.24。这个特殊的弹出窗口正在ng网格中的标题单元格模板中使用。我在页面上添加了一个popover到其他东西,它工作正常,所以它似乎与在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
    };
    });

1 个答案:

答案 0 :(得分:1)

您使用的角度是什么版本?您可能需要升级角度版本。我把一个快速的jsfiddle与你的指令组合在一起,它似乎对我使用角度1.3.15和1.2.28

//angular 1.3.15

http://jsfiddle.net/x5o9s27a/

//angular 1.2.28

http://jsfiddle.net/ge7bqh4n/