Javascript 为什么不是';在AngularJS中更新数据标题属性?

Javascript 为什么不是';在AngularJS中更新数据标题属性?,javascript,angularjs,twitter-bootstrap,Javascript,Angularjs,Twitter Bootstrap,我正在使用AngularJS和Bootstrap的popover。我可以成功绑定到数据内容,但不能绑定到数据标题: <li data-trigger="hover" data-placement="bottom" data-title="{{'Memory limit' | l10n}}" data-content="{{'Memory available for the execution of one testcase, measured in MiB.' | l10n}}">

我正在使用AngularJS和Bootstrap的popover。我可以成功绑定到
数据内容
,但不能绑定到
数据标题

<li data-trigger="hover" data-placement="bottom" data-title="{{'Memory limit' | l10n}}" data-content="{{'Memory available for the execution of one testcase, measured in MiB.' | l10n}}">
  <a><i class="fa fa-stack-overflow fa-lg"></i> {{task.memory_limit}} MiB</a>
</li>
  • {{task.memory_limit}}MiB
  • 此代码生成:


    但是,从开发工具中,我可以看到
    data title=“Limite di memoria”
    是这样工作的,所以我真的不明白为什么它没有更新到实际视图。另外,从开发工具中,我可以看到有两个我不知道的空的新属性(
    数据原始标题
    标题
    )。

    这是因为每当启动Popover JavaScript执行时,都会读取该属性,这是在绑定更新之前


    如果您想使用该功能,您要么必须滚动您自己的指令,要么找到一个。有一个您可能可以使用的Popover实现。

    这是因为每当启动Popover JavaScript执行时,即在Angular更新该绑定之前,都会读取该属性

    如果您想使用该功能,您要么必须滚动您自己的指令,要么找到一个。有一个您可能可以使用的Popover实现。

    我有

    data-toggle="tooltip" data-placement="left" data-title="'global.passwrules' | translate : {passwlen : user.user.passwLen}"
    
    但是,在从数据库读取
    user.user.passwLen
    之前,先计算
    数据标题
    。因此我重写了
    tooltip.js
    并添加了
    timeout

    旧的工具提示.js

    directivesModule
    .directive('toggle', function($timeout){
      return {
        link: function(scope, element, attrs){
          if (attrs.toggle=="tooltip"){
              $timeout(function() {
                  $(element).attr( 'title', scope.$eval(attrs.title));
                  $(element).tooltip();
              },0);
          }
          if (attrs.toggle=="popover"){
              $(element).popover();
          }
        }
      };
    });
    
    directivesModule
    .directive('toggle', function(){
      return {
        link: function(scope, element, attrs){
          if (attrs.toggle=="tooltip"){
             $(element).attr( 'title', scope.$eval(attrs.title));
             $(element).tooltip();
          }
          if (attrs.toggle=="popover"){
            $(element).popover();
          }
        }
      };
    });
    
    到我的工具提示.js

    directivesModule
    .directive('toggle', function($timeout){
      return {
        link: function(scope, element, attrs){
          if (attrs.toggle=="tooltip"){
              $timeout(function() {
                  $(element).attr( 'title', scope.$eval(attrs.title));
                  $(element).tooltip();
              },0);
          }
          if (attrs.toggle=="popover"){
              $(element).popover();
          }
        }
      };
    });
    
    directivesModule
    .directive('toggle', function(){
      return {
        link: function(scope, element, attrs){
          if (attrs.toggle=="tooltip"){
             $(element).attr( 'title', scope.$eval(attrs.title));
             $(element).tooltip();
          }
          if (attrs.toggle=="popover"){
            $(element).popover();
          }
        }
      };
    });
    
    我有

    但是,在从数据库读取
    user.user.passwLen
    之前,先计算
    数据标题
    。因此我重写了
    tooltip.js
    并添加了
    timeout

    旧的工具提示.js

    directivesModule
    .directive('toggle', function($timeout){
      return {
        link: function(scope, element, attrs){
          if (attrs.toggle=="tooltip"){
              $timeout(function() {
                  $(element).attr( 'title', scope.$eval(attrs.title));
                  $(element).tooltip();
              },0);
          }
          if (attrs.toggle=="popover"){
              $(element).popover();
          }
        }
      };
    });
    
    directivesModule
    .directive('toggle', function(){
      return {
        link: function(scope, element, attrs){
          if (attrs.toggle=="tooltip"){
             $(element).attr( 'title', scope.$eval(attrs.title));
             $(element).tooltip();
          }
          if (attrs.toggle=="popover"){
            $(element).popover();
          }
        }
      };
    });
    
    到我的工具提示.js

    directivesModule
    .directive('toggle', function($timeout){
      return {
        link: function(scope, element, attrs){
          if (attrs.toggle=="tooltip"){
              $timeout(function() {
                  $(element).attr( 'title', scope.$eval(attrs.title));
                  $(element).tooltip();
              },0);
          }
          if (attrs.toggle=="popover"){
              $(element).popover();
          }
        }
      };
    });
    
    directivesModule
    .directive('toggle', function(){
      return {
        link: function(scope, element, attrs){
          if (attrs.toggle=="tooltip"){
             $(element).attr( 'title', scope.$eval(attrs.title));
             $(element).tooltip();
          }
          if (attrs.toggle=="popover"){
            $(element).popover();
          }
        }
      };
    });
    

    您使用的是stock bootstrap JS库还是AngularStrap或AngularStrap等端口?@MikeRobinson:stock bootstrap.min.JS(版本3.0.3)您使用的是stock bootstrap JS库还是AngularStrap或AngularStrap等端口?@MikeRobinson:stock bootstrap.min.JS(版本3.0.3)谢谢,我尝试包装popover启用调用
    $(…).popover()$timeout
    调用(零延迟)编码>,现在它可以工作了。谢谢,我尝试过包装popover启用调用
    $(…).popover()
    使用
    $timeout
    调用(零延迟),现在它可以工作了。