将jsp表达式标记中的值分配给angularjs模型

时间:2015-04-17 07:37:57

标签: angularjs jsp

我陷入困境,应该在'jsp'文件中检索存储在会话中的id值,从而将检索到的值分配给angular var。

<%=uidfrmSession%>包含检索到的值。但我找不到将其分配给角度模型的方法。

以下是我提出的方法,但它不起作用。

 <input type="hidden" ng-value="<%=uidfrmSession %>" ng-model="uid">

当我检查角度模型var uid的值时,其中包含undefined

请帮忙!

2 个答案:

答案 0 :(得分:1)

这里的问题可能是当最初加载angularJS时,JSP还没有更新该项的值。我可以想出两种解决方法。

选项1 观察模型uid是否有更改,然后在更新其值后执行任何额外的功能。

$scope.$watch('uid', function (nv, ov) {
  if (!nv) {
    return;
  }
  // Do whatever you need with the date for $scope.uid
  ...
}

选项2 显然,最好避免尽可能避免使用$watch,而是可以将ng-change添加到input标记中。因此,当模型uid的值发生变化时,您将分配给ng-change的任何函数都将被调用

// html

<input type="hidden" ng-change="doStuff()" ng-model="uid">

//代码

$scope.doStuff = function () {
  // Do whatever you want with the value of $scope.uid
  ...
};

干杯

答案 1 :(得分:0)

希望这会起作用

<input type="hidden" ng-init="uid = '<%= uidfrmSession %>'">

注意:我们必须初始化模型,默认情况下,模型的值是未定义的,因此它将值设置为undefined