带有动态数据的 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
是什么或您的服务器响应什么。
具有动态值的 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 ofngRepeat
, as seen in the demo below. Besides this case, you should use controllers rather thanngInit
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
是什么或您的服务器响应什么。