【问题标题】:AngularJS: Switch model value does not affect on UIAngularJS:切换模型值不会影响 UI
【发布时间】:2015-06-01 11:27:42
【问题描述】:

我在link:方法中创建了一个指令并启动了一些模型,然后在模板的<a>标签上绑定了一个点击事件。范围模型将其值相互切换。

当我在控制台中看到模型值时,它似乎工作正常。但不反映在 UI 上。

这是我的小提琴:http://jsfiddle.net/gp32g7sr/7/

【问题讨论】:

  • 在指令代码末尾添加scope.$apply()See here
  • scope.apply() 将起作用..上述评论是正确的。你需要使用 scope.$apply() 杀死 $digest,这样就不再关注变化了。
  • @valverde93 非常感谢,scope.$apply() 正在工作。这就是我一直在寻找的。在下面回答这个以关闭!更新:jsfiddle.net/gp32g7sr/9
  • @vinaykrsharma 不客气! pankajparkar 先生也在下面回答,它已经准备好关闭了

标签: javascript angularjs


【解决方案1】:

需要在作用域上$apply 才能运行摘要循环。从事件更改范围变量不会运行角度摘要循环,我们需要手动运行它。

链接 Fn

    link: function (scope, element, attrs) {
        scope.activeContinent = 'Asia';
        scope.altContinent = 'America';
        element.find('a').on('click', function (e) {
            e.preventDefault();
            var x = scope.altContinent;
            scope.altContinent = scope.activeContinent;
            scope.activeContinent = x;
            document.querySelector('#log')
                .innerHTML = scope.activeContinent + '  ' + scope.altContinent;
            //$compile(document.querySelector('#log'))(scope);
            scope.$apply();
        });
    }

Working Fiddle

【讨论】:

    猜你喜欢
    • 2017-12-03
    • 1970-01-01
    • 1970-01-01
    • 2015-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多