【问题标题】:Angularjs popover plugin not working correctlyAngularjs popover 插件无法正常工作
【发布时间】:2014-01-26 10:23:39
【问题描述】:

我是 angularjs 的新手。我的 Popover jquery 插件有问题,我为它创建了一个指令,但不知道为什么它不能正常工作

这里是一个笨蛋link

【问题讨论】:

    标签: jquery angularjs angularjs-directive popover


    【解决方案1】:

    您的绑定被读取而不针对当前范围进行评估。您可以使用 scope.$eval 手动进行评估。

    尝试将数据读取为文本并手动评估:

    var api = scope.$eval($(this).attr('data-api'));
    

    DEMO

    另一种解决方案是使用$timeout 将函数安排到下一阶段以确保 angular 已完成其绑定 => 我们不再需要使用scope.$eval

    app.directive('popover', function($timeout) {
      return {
        restrict: 'A',
        link: function(scope, element, attrs) {
          $timeout(function(){
              element.popover({
              trigger: 'hover',
              html: true,
              content: function() {
                var api = angular.fromJson(attrs.api);
    
                return (
                  '<ul><li>' + api[0] + ',' + api[1] + '</li><li>' + api[2] + ',' + api[3] + '</li>');
              }
            });
          });
        }
      };
    });
    

    DEMO

    【讨论】:

    • 谢谢,为什么标题还是有问题?
    • @Ahmed Hashem:我添加了另一个解决方案,我认为让 Angular 做绑定更好,我们避免自己做可能与 Angular 绑定冲突并产生不可预测的结果。
    猜你喜欢
    • 1970-01-01
    • 2012-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多