2013-11-12 2 views
0

Я пытался использовать функции привязки angularjs. У меня был один сценарий, где у меня есть форма тег внутри «нг-приложение» тегУгловое связывание js с нормальным элементом html

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

</form> 

В моем app.js файл я пишу завод, который будет вызывать нормальный яваскрипт функцию, чтобы установить значение поля имени

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); 

Я ожидаю предупреждение для печати «риск = StackOverflow», но р rints "risk =". Мне что-то не хватает, если кто-нибудь может меня поправить.

Благодаря

ответ

1

Поскольку ваше обновление значения вида непосредственно вам необходимо сообщить угловой миру вы обновили вид. Если вы запустили приложение на заводе, которое должно его исправить. Взгляните на Angular Scope

angularApp.factory('NameFactory', function($rootScope){ 
    return { 
     bodyLoaded:function(){ 
     $rootScope.$apply(collectName()); 
     } 
    }; 
}); 
Смежные вопросы