0

我正在尝试 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中调用我的工厂后,我尝试访问名称变量app.js

$scope.risk = {
        name : '',

};

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

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

谢谢

4

1 回答 1

1

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

angularApp.factory('NameFactory', function( $rootScope ){
   return {
      bodyLoaded:function(){
        $rootScope.$apply( collectName() );
      }
    }; 
});
于 2013-11-12T08:09:49.810 回答