当前位置: 首页 > 面试题库 >

添加后加载后,ng-click不会触发

湛宜春
2023-03-14
问题内容

我正在尝试进行变量替换,同时也使它可以通过ngClick单击。

我做了一个小矮人演示(单击按钮,观察输入框保持不变)

标记:

<body ng-controller="Ctrl">
  <input type="text" id="input" name="input" ng-model="myValue" test>
  <p translate="VARIABLE_REPLACEMENT" translate-values="{{ 'translationData' }}"></p>
  <p ng-bind-html="alink"></p>
</body>

角度的东西:

var translations = {
  VARIABLE_REPLACEMENT: 'Hi, {{name}}'
};

var app = angular.module('myApp', ['pascalprecht.translate', 'ngSanitize']);

app.config(['$translateProvider', function ($translateProvider) {
  // add translation table
  $translateProvider.translations(translations);
}]);

app.controller('Ctrl', ['$scope', '$sce', function ($scope, $sce) {
  $scope.translationData = { name: 'foo'};

  $scope.setValue = function(value) {
    $scope.myValue = value;
  };
}]);

app.directive('test', ['$translate', '$sce', function ($translate, $sce) {
  return {
    require: 'ngModel',
    scope: false,
    link: function (scope, element, attrs, ctrl) {
      scope.$watch(attrs.ngModel, function (value) {
        var a = $translate('VARIABLE_REPLACEMENT', {
          name: '<button type="button" ng-click="setValue(\'foobar\')">click me</button>'
        });
        scope.alink = $sce.trustAsHtml(a);
      });
    }
  };
}]);

问题是:为什么ng-click="setValue('foobar')"单击按钮时不触发。应该在输入字段中设置值’foobar’。


问题答案:

同时,有一个针对该问题的官方解决方案:

<p translate="varWithDirective" translate-compile></p>

无需编写自定义指令即可进行编译。

有关更多信息:https : //github.com/angular-translate/angular-
translate/issues/184



 类似资料:
  • 问题内容: 我正在尝试在应用程序中使用AngularJS,并在某种程度上取得了成功。 我能够获取数据并将其显示给用户。我有一个按钮,我想通过该按钮发布DELETE请求。下面是我的代码。 这是获取信息并将其显示给用户的功能。 数据已获取并正确显示。 但是,单击删除按钮后,不会触发其中的代码。在GoogleChrome浏览器的开发人员工具中,我可以看到为代码生成了有效值,但未触发代码。从我尝试去掉花括

  • 问题内容: 所以我有这个按钮,它将在表中添加新行,但是我的问题是,在执行append方法之后,它不再侦听click事件。 单击添加新条目,然后单击表单名称。 HTML 问题答案: 使用上: 这样,即使在绑定事件处理程序之后添加了单击,也可以将单击委派给具有class的任何元素。

  • 问题内容: 我的页面上有几个链接(位于内),可用于更改CSS样式表: 现在,在更改页面上的样式之后,我想使用以下代码(在调用之后放入)获得新的背景色: 我认为问题是浏览器需要花费一些时间来下载新的样式表,并且有时我的警报消息中还会出现旧的背景色。我可以绑定一些事件,该事件仅在页面上所有样式表加载后才会提醒我吗? 目前,我所能想到的只是使用了a ,效果并不理想,因为如果要花费更长或更短的时间来加载页

  • 有人知道怎么等到页面加载吗?我尝试了我在网上找到的所有可能的变体,但就是不起作用。 在我触发click()命令后,我需要等待,Web服务器上有一些内部脚本可以欺骗检查,例如(我排除了导入所需模块并使用标准命名约定的代码): 或 或 以上所有检查都不起作用,因为即使页面仍在加载,它们也会返回True。这导致我正在阅读的文本不完整,因为在单击()命令后页面没有完全加载。似乎在python中clickA

  • 问题内容: 我刚开始接触Angular,但过去几周一直在使用它,并且设法解决了我遇到的大多数问题。然而,这让我感到难过。 我有一个应用程序,该应用程序从Twitter提取推文,然后使用角度过滤器提取所有URL,并将其设置为链接样式。该部分工作正常,但客户认为来自Twitter的链接不安全,因此他们希望在每次单击链接时触发免责声明。足够简单- 我劫持了链接并将换成一个。这是发生问题的地方- 不起作用

  • 问题内容: 我正在使用jQuery v.1.7.1,其中显然不推荐使用.live()方法。 我遇到的问题是,使用以下方法将html动态加载到元素中时: 如果我尝试在之后添加click事件,则不会使用以下两种方法之一注册事件: 要么 实现此功能的正确方法是什么?它似乎只对.live()有效,但我不应该使用该方法。请注意,#child是动态加载的元素。 谢谢。 问题答案: 如果您希望单击处理程序适用于