javascript - 如何使用 AngularJS 有条件地在按钮中显示 HTML?

标签 javascript html angularjs

我希望某个按钮元素默认包含纯文本,但随后包含基于我的 Angular 范围内的某些变量的 HTML。我的目标是让按钮显示“保存”,但随后被禁用并在单击时显示加载轮(同时等待长 AJAX 请求的响应)。问题是,Angular 在按钮中显示我的三元运算符的文字文本,而不是表达式的结果。

这是我的按钮的样子:

<button type="submit" ng-disabled="IsLoading" ng-click="OnClick()">
  {{ IsLoading === false ? "Save" : "<i class='fa fa-spinner fa-pulse'></i>" }}
</button>

Broken Angular code in button

当我将 HTML 更改为一些纯文本(例如“正在加载...”)时,它就可以正常工作。

如何让它显示表达式的结果而不是表达式本身的文本?谢谢。

旁注:I tried to get a demo up and running ,但我似乎无法弄清楚如何使用 JSFiddle 正确连接 Angular。这不是我问题的目的,但我真的很想知道我哪里出错了,这样我将来就可以成功地制作简单的 Angular 演示。如有任何建议,我们将不胜感激。

最佳答案

看看这个 fiddle

<div ng-app="myApp" ng-controller="LoadingController">
  <div style="float: left;">
    <button type="submit" ng-disabled="IsLoading" ng-click="OnClick()">
      <span ng-if="!IsLoading">
        Save
      </span>
      <span ng-if="IsLoading">
        <i class="fa fa-spinner fa-pulse"></i>
      </span>

    </button>
  </div>
  <div style="float: left;">
    <button type="submit" ng-disabled="IsLoading" ng-click="OnClick()">
     <span ng-if="!IsLoading">
        Save
      </span>
      <span ng-if="IsLoading">
        Loading...
      </span>
    </button> 
  </div>
</div>

js

angular.module("myApp",[]).controller('LoadingController', function   LoadingController ($scope) {
    $scope.IsLoading = false;

  $scope.OnClick = function() {
    $scope.IsLoading = true;
    window.setTimeout(function() {
        $scope.IsLoading = false;
    }, 1000);
  };
});

注意:Angular 1.1.5 添加了 ternary operator支持,而你的 fiddle 指向旧版本,这就是它不起作用的原因

关于javascript - 如何使用 AngularJS 有条件地在按钮中显示 HTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37352301/

相关文章:

javascript - 将变量从 jsp 页面传递到 servlet

html.BeginForm MVC 5 导致表单标签 CSS 问题

javascript - angularJS:自定义 404 拦截器句柄 - 响应 url

javascript - 重叠的日期框

javascript - 如何使用 Backbone.js 部分更新(补丁 : true)?

javascript - 使用 Google Apps 脚本将两个选项卡合并到一个 pdf 中时出现 "ReferenceError: setTimeout"

html - 如何在CSS菜单中对齐图像下的文本

html - Jsoup CSS 选择器

javascript - 传递当前 Google map 标记的坐标

javascript - 用户输入生成子字符串