将ng-model var设置为angularjs中输入的默认值

时间:2013-07-01 01:35:12

标签: javascript angularjs

假设我有以下内容:

我希望$ scope.bookname的初始值为123.如果bookname在其他地方更新,我希望输入中的值更改(即模型绑定)。

123是动态设置的(来自rails),所以我不能在之前的javascript中设置它(即$ scope.bookname = 123;不起作用)。

任何想法如何实现这一目标?

2 个答案:

答案 0 :(得分:1)

有几种方法你可以做到这一点(我不熟悉rails,但我会试着让它足够模糊以适用于所有服务器端语言):

  • 在您的html中,动态创建<script>代码并创建var BookName = 123;其中'123'显然是服务器端变量的值。然后在您的控制器中初始化它:$scope.bookname = BookName;
  • 在你的html中,创建一个隐藏的输入,并动态地给它一个值。然后获取控制器中的值:$scope.bookname = $('#inputID').val();
  • 您可以创建一个json调用并让您的控制器/服务发出请求,并且您的服务器会发回变量的值。

另外,这是另一种技巧(肉体的回答):Angular js init ng-model from default values

答案 1 :(得分:0)

泽熊的答案是正确的。在rails中执行此操作的方法是将JavaScript文件设置为erb文件,并在rails变量周围使用<%= =>标记。