angularjs-ng-init - 初始化后,如何避免初始化

  显示原文与译文双语对照的内容
0 0

我在应用程序中使用ng初始化一个变量。 问题是我在加载应用程序后更改了这个变量,并且我希望在函数执行后初始化变量。 我是 Angular 新手,无法找到它。

这是我的ng-init:


<tr ng-repeat="(script_id, cron_format) in row" **ng-init**="oldCron = cron_format">
 <td>{{user_id}}</td>
 <td>{{script_id}}</td>
 <td>
 <input type="text" ng-model="cron_format" ng-blur="saveCron(user_id,script_id,cron_format,oldCron)"/>
 </td>
</tr>

saveCron() 应该改变 oldCron的值,但是每次调用函数时,它都会用ng初始值初始化 oldCron 。 这是我尝试提交更改的函数:


$scope.saveCron = function(userId,scriptId,cronFormat,oldCron){
 if (oldCron!= cronFormat) {
 oldCron = cronFormat;
 $http.post("updateCronChange.php",cron_format=" + cronFormat, function (data) {
 alert('cron format changed to:' + cronFormat);
 });
 }
}

如何在初始化之后更新 oldCron 并忽略初始化?

时间: 原作者:

0 0

我们不能做你所需要的,因为 ng-init 在渲染HTML时被调用。

你可以将变量 inside Angular 运行/配置阶段设置为 Angular,而不是这样做。

代码


app.run(function($rootScope, myService){
//set the variable inside $rootScope, this will available for any controller
 $rootScope.myVariable = 'setFromRunPhaseUsingRootScope';
//you can use sharable service variable to set data, and use that inside your controller
 myService.myVariable = 'setFromRunPhaseUsingService'
});

希望这可以帮助你。

原作者:
...