带有动态数据的 ng-init 不起作用

ng-init with dynamic data not working

具有动态值的 ng-init 不工作。任何人都可以帮助我在这里缺少什么..!谢谢

 <input type="text" class="form-input form-control" id="defaultInputText" ng-model="details.emailAddr"
                                                     ng-init="details.emailAddr = accSummary.response.custName"  placeholder="yourname@email.com">

如果您需要初始化作用域,例如设置 details.emailAddr,请创建一个控制器来执行此操作。

来自angular docs

The only appropriate use of ngInit is for aliasing special properties of ngRepeat, as seen in the demo below. Besides this case, you should use controllers rather than ngInit to initialize values on a scope.

@valverde93 you mean ng-init wont work for dynamic data? – chandru 2 mins ago

不,正如 Cirdec 所说,您必须在请求完成后在您的控制器中进行设置。现在当 ng-init 运行时, accSummary.response.custName 不存在。一旦 AJAX 响应返回,它不会尝试重新运行 ng-init 因为 Angular 不知道这是一个 AJAX 响应或任何东西。

你的控制器最终应该看起来像这样:

$http.get('/my-url', function(accSummary){
  details.emailAddr = accSummary.response.custName
});

我不完全确定 accSummary 是什么或您的服务器响应什么。