2014-05-12 103 views
1

我有指示,我称之为是这样的:包含变量作为模板变量的一部分?

<simperium-auth method="create"></simperium-auth> 

我已经加入法的范围,所以我可以这样引用它:

<form ng-attr-name="{{method}}" ng-submit="auth(method)" novalidate> 

这个伟大的工程。但是,我想将其添加为另一个变量的一部分,这样的事情(虽然,这不工作):

{{[method].email.$error.serverMessage}} 
下面

全部指令:

<div ng-controller="auth"> 
    <h3 ng-show="method == 'create'">Create account</h3> 
    <h3 ng-show="method == 'login'">Login</h3> 
    <form ng-attr-name="{{method}}" ng-submit="auth(method)" novalidate> 
     <div> 
      <input name="username" ng-model="username" type="email" required placeholder="Your e-mail"> 
      <div class="helper" ng-show="{{method}}.username.$error.required"><p>Provide an email-adress</p></div> 
      <div class="helper error" ng-show="{{method}}.username.$error.email"><p>This is not a valid email</p></div> 
      <div class="helper error" ng-show="{{method}}.username.$error.serverMessage"><p>{{this['method'].email.$error.serverMessage}}</p></div> 

     </div> 
     <div> 
      <input name="password" ng-model="password" type="password" required placeholder="Select a password"> 
      <div class="helper" ng-show="{{method}}.password.$error.required"><p>Povide a password</p></div> 
     </div> 
     <input type="submit" value="{{method}}"> 
    </form> 
</div> 
+0

你可以试试'{{$ scope [method] .email。$ error.serverMessage}}'? – sp00m

+0

不起作用,我测试了{{$ scope [method]}}。 – Himmators

+0

在'ng-show'(例如'{{method}}。username。$ error.email')中的访问是否有效?如果是,为什么你不使用相同的语法? – link

回答

0

我解决它像这样:

<p ng-bind="{{method}}.username.$error.serverMessage"></p> 

ng-bind填充标签。