【问题标题】:Angular js binding with normal html elementAngular js与普通html元素绑定
【发布时间】:2013-11-12 07:48:09
【问题描述】:

我正在尝试 angularjs 绑定功能。我有一个场景,我在“ng-app”标签中有一个表单标签

<form name="CollectMFPToEvaluate" >
    <input type="text" name="name" ng-model="risk.name" ng-show="false">

</form>

在我的 app.js 文件中,我正在编写一个工厂,它将调用一个普通的 javascript 函数来设置名称字段的值

angularApp.factory('NameFactory', function(){
 return {
    bodyLoaded:function(){
       collectName();
    },
}; 
});

var collectName = function(){
    document.CollectMFPToEvaluate.name.value = "stackoverflow"; 
};

在我在 apps.js 中调用我的工厂后,我尝试访问 name 变量 app.js

$scope.risk = {
        name : '',

};

NameFactory.bodyLoaded();
     alert("risk = "+$scope.risk.name);

我希望警报打印“risk = stackoverflow”,但它会打印“risk =”。 我是否遗漏了什么,如果有人可以请纠正我。

谢谢

【问题讨论】:

    标签: javascript angularjs


    【解决方案1】:

    由于您直接更新视图值,因此您需要告诉角度世界您已更新视图。如果您在工厂运行应用程序,应该修复它。看看Angular Scope

    angularApp.factory('NameFactory', function( $rootScope ){
       return {
          bodyLoaded:function(){
            $rootScope.$apply( collectName() );
          }
        }; 
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多