更新为1.2后,变量无效的表单操作

Pat*_*eck 17 angularjs

我在以前AngularJS使用此代码的版本中生成了一个表单操作:

<form action="{{ api }}/products/image">
Run Code Online (Sandbox Code Playgroud)

但是,我刚刚更新了,现在显然太松了.

插值时出错:{{api}}/products/image Strict Contextual Escaping不允许在需要可信值时连接多个表达式的插值.

我如何实现相同的功能1.2.4

mus*_*_ut 36

从Angular 1.2.x开始,您只能将一个表达式绑定为URL.

因此,在您的控制器上,执行以下操作:

$scope.actionUrl = $scope.api + '/products/image';
Run Code Online (Sandbox Code Playgroud)

在模板中:

<form action="{{ actionUrl }}">
Run Code Online (Sandbox Code Playgroud)

更新

正如@Fourth所说:

<form action="{{ api + '/products/image' }}">
Run Code Online (Sandbox Code Playgroud)

  • 另一种选择:`<form action ="{{api +'/ products/image'}}">` (9认同)
  • @SarahVessels好点.在这种情况下,我认为需要`$ scope.actionUrl = $ sce.trustAsResourceUrl($ scope.actionUrl). (9认同)
  • @musically_ut我通过`$ sceDelegateProvider.resourceUrlWhitelist(['http:// my-form-action/path','self'])来解决它. (4认同)
  • 当URL位于不同的服务器上时,这可能导致"错误:[$ sce:insecurl]从$ sceDelegate策略不允许的URL阻止加载资源"错误. (3认同)