Angularjs 是否支持 in 模板?

Does Angularjs support with in template?

如果我有 $scope.data={"user" {"firstname":test"}},我希望有像

这样的模板

{% 含数据 %} 用户名是 {{ user.firstname }}

{% 与 data.user %} 用户名为 {{ firstname }}

类似的东西,但我找不到。我认为总是使用像 {{ data.user.firstname }}

这样的完整路径并不理想

有什么想法吗?

据我所知 AngularJS 不支持 with,那是 python。我发现访问没有问题:

{{ data.user.firstname }} 

在您的模板中。如果你不喜欢 "data." 为什么不直接分配:

let data={ user: { firstname: "test"} };   
$scope.user = data.user;

然后您就可以在模板中使用:

{{ user.firstname }}

您可以使用的另一件事是指令 - 设置您自己的自定义指令并通过绑定传递您想要的值,该绑定将为您提供 属性 在您想要的 $scope 上。所以在 HTML 你可以这样做:

<some-directive user="data.user" />

然后在指令中(假定您已将模块存储在变量 app 中):

app.directive('someDirective', function() {
  return {
    scope: {
      user: '='
    },
    template: 'Name: {{user.firstname}}'
  };
});

关于指令的更多信息:https://docs.angularjs.org/guide/directive