第一次初始化后如何避免 ng-init
how to avoid ng-init after first initialization
我在我的应用程序中使用 ng-init 来初始化一个变量。问题是我在加载应用程序后更改此变量,我希望我首先初始化的变量在函数执行后存储新值。我是 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-init 中的值初始化 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
并忽略 ng-init 吗?
我们无法执行您的要求,因为 ng-init
在渲染时被调用 HTML。
我想说的是,与其这样做,不如将变量设置在 angular run/config 阶段 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'
});
希望对您有所帮助。
我在我的应用程序中使用 ng-init 来初始化一个变量。问题是我在加载应用程序后更改此变量,我希望我首先初始化的变量在函数执行后存储新值。我是 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-init 中的值初始化 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
并忽略 ng-init 吗?
我们无法执行您的要求,因为 ng-init
在渲染时被调用 HTML。
我想说的是,与其这样做,不如将变量设置在 angular run/config 阶段 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'
});
希望对您有所帮助。