是否可以提供一种将对象转换为角度模板字符串的隐式方法?

2023-12-05

假设我有一些具有相同原型的对象,并且我想在 Angular 模板中自定义它们的显示。我知道我可以创建自己的过滤器,然后像这样使用它:

<p>{{anObjectOfProtoP | myCustomFilter}}</p>

或附加到 $scope 的函数:

<p>{{myCustomFunction(anotherObjectOfProtoP)}}</p>

我的问题是:是否可以实现类似的功能而无需每次都显式指定渲染函数?理想的解决方案是如果角度检查功能toAngularString在物体内部{{}},然后在模板中使用它的返回值。 换句话说,我希望 Angular 能够做到

function (o) {
   if (typeof o.toAngularString === 'function') return o.toAngularString();
   return o;
}

里面的每一个物体{{}}.


取决于你是否使用{{ ... }} or ng-bind语法,将.toJSON.toString将调用对象上的函数来确定其表示形式。因此,您可以提供您想要的表示形式.toString or .toJSON你的对象的功能。

调用函数的这种差异使得一些问题, 实际上。

另一种方法是编写自己的指令my-toangularstr像这样:

app.directive('myToangularstr', function () {
  return {
    scope: true,
    template: '<span class="my-angular-value">{{ val.toAngularString() }}</span>',
    link: function (scope, elem, attrs) {
      scope.$watch(attrs['myToangularstr'], function (newVal) {
        if (typeof newVal !== 'undefined') {
          scope.val = newVal;
        }
      })
    }
  }
})

显示所有三种方法的工作演示是here.

我认为这是使用 Angular 外部 API 所能得到的最接近的结果。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以提供一种将对象转换为角度模板字符串的隐式方法? 的相关文章

随机推荐

  • 如何按需挂起 Java 线程?

    我正在用java开发一个多线程游戏 我有几个工作线程从中央线程管理器获取模块 然后自行执行 现在 如果它暂时没有什么可执行的 我希望能够暂停这样的线程 我尝试从线程管理器调用 wait 方法 但这只会导致它忽略后面的 notificatio
  • 带边框和透明间隙的 CSS 三角形切口

    我需要使用 CSS 绘制以下图案作为页面各部分之间的分隔符 使用skewX 技术来自这个答案 我能够准确地模仿三角形切口 两个伪元素附加到下部部分的顶部 一个向左倾斜 一个向右倾斜 以便上部部分的背景显示出来 但我不知道如何添加边框 如第一
  • SQL 一对多

    我正在尝试为我们拥有的系统构建一个 SQL 模式channels 每个都有一个id 以及一个或多个fixtures 我很难找到实现这种一对多映射的方法 即一channel太多fixtures 我正在使用H2数据库引擎 我不能有桌子 id f
  • Excel 数据验证列表,其中排除已使用的值

    我有 A 列 其中有一些数据 B 列有一个数据验证列表下拉列表 其中包含 A 列中的值 当我从 B 列中的列表中选择值 例如 B1 A B2 B B3 C 时 我希望下拉列表排除该列中已使用的值 因此 在屏幕截图中 B4 中的下拉列表应该只
  • 为什么 iPhone 视频是颠倒的?

    我有一个使用标准相机应用程序捕获的视频文件 并使用它从我的 Iphone 5 复制btsync orig mov ISO Media Apple QuickTime movie 那个播放倒挂在 mplayer 或 vlc 中 当我使用 AW
  • 从 M 文件控制 simulink

    我正在尝试从 M 文件控制 simulink 我想要在 M 文件中做的是给 simulink 模型一些输入 运行 simulink 模型 在 0 6 秒时更改一个输入值 然后使用新输入继续运行 simulink 模型 我已经知道通过使用se
  • Xamarin 表单:如何在设备外部存储中创建文件夹和文件?

    我正在尝试在设备的外部存储上的该文件夹中创建一个文件夹和一个文本文件 与 WhatsApp 的做法相同 另外 我需要向该文件写入一些数据 是否可以以 xamarin 形式执行此操作 或者我们应该使用依赖服务吗 提前致谢 UPDATE Luc
  • 使用 HTMLAgilityPack 进行 XHTML 解析

    我在使用 HTMLAgilityPack 找到的元素内有以下元素的列表
  • 用户代理,从字符串中提取操作系统和浏览器

    我想从用户代理字符串中提取完整的操作系统名称和浏览器 我怎样才能做到这一点 我认为获取完整的操作系统名称和完整的浏览器名称很棘手 因为许多浏览器以不同的方式标识自己 您可能需要一些奇特的正则表达式 但它甚至可能无法 100 地工作 这是我用
  • FilterRegistrationBean url 模式不起作用

    我正在注册一个过滤器 如下所示用于日志输出 我想要网址模式 api Bean public CommonsRequestLoggingFilter commonsRequestLoggingFilter CommonsRequestLogg
  • HTML select - 在 HTML 中显示值属性但保留选项文本

    我有一个清单option各州在select元素
  • 获取 Blazor 组件中的当前用户

    我正在使用 Blazor 和 Windows 身份验证启动一个新站点 并且需要识别当前查看页面 组件的用户 对于 Razor 页面 可以使用以下命令访问当前用户名Context User Identity Name 但这似乎在 Blazor
  • React 类组件与功能组件[重复]

    这个问题在这里已经有答案了 Before React16 class components被使用过functional components每当需要使用时state or lifecycle methods在你的组件中 在最新版本中引入了
  • 背景图像渐变

    我有一个具有透明背景的图像 我想将其作为所有控件后面的图像覆盖在我的窗口上 我的窗口背景已经有一个渐变画笔 但通过谷歌搜索和实验我可以看出 你不能有两个背景画笔 这是不起作用的 XAML 你有什么建议 也许还有另一种设置图像的方法
  • float 对象没有属性 __getitem__

    这是我从这个函数中得到的错误 TypeError float object has no attribute getitem The self target只是一个元组并且self x and self y是整数 我不知道我做错了什么 cl
  • ' 的 ViewData 项”' aria-label='我收到错误“没有类型为 'IEnumerable' 的 ViewData 项”'> 我收到错误“没有类型为 'IEnumerable' 的 ViewData 项”

    我收到错误 不存在具有键 TIMEZONE 的 IEnumerable 类型的 ViewData 项 View 控制器 ViewData TIM
  • Word 可以直接从 Web 服务器编辑文档而不需要 Sharepoint 吗?

    我有一个看起来很简单的用例 但在谷歌搜索后我找不到解决方案 我在 FTP 服务器上有一些 Word 文档 我希望能够创建一个链接 将它们下载到 Word 中 然后允许将保存的更改发送回 FTP 服务器 问题是我只能让 Word 从 FTP
  • Android Studio NDK 错误,无法找到 GLES3/gl3.h,尽管它存在

    我正在尝试在 Android Studio 上制作一个使用 NDK 和 OpenGL ES 3 0 的应用程序 当我 include 时 IDE 在我输入时会自动完成 我认为这是一个标志 意味着 IDE可以找到它 但是 我收到错误 错误 2
  • python 使用带请求的 multipart/form-data 为 POST 设置边界

    我想使用请求发送文件 但服务器使用固定边界设置 我只能发送文件 但requests模块创建一个随机边界 我该如何覆盖它 import requests url http xxx xxx com uploadfile php fichier
  • 是否可以提供一种将对象转换为角度模板字符串的隐式方法?

    假设我有一些具有相同原型的对象 并且我想在 Angular 模板中自定义它们的显示 我知道我可以创建自己的过滤器 然后像这样使用它 p anObjectOfProtoP myCustomFilter p 或附加到 scope 的函数 p m