javascript - instanciar - propiedades angularjs
¿Cómo actualizar.value dentro del controlador angularjs? (2)
El valor es básicamente una string
que es its es un tipo primitivo y no tiene referencia por lo que el valor se vincula una vez.
He hecho un violín con una fábrica y lo usé para la aplicación intermódulo como su requisito
var app = angular.module(''myApp'', []);
var app1 = angular.module(''myApp1'', [''myApp'']);
app.controller(''HelloCtrl'', HelloCtrl);
app.controller(''GoodbyeCtrl'', GoodbyeCtrl);
app1.controller(''ctrl2'', ctrl2);
app.factory(''testFactory'', function(){
var _name = ''hello'';
return {
getName: function(text){
return _name;
},
setName: function(name){
_name = name;
}
}
});
function HelloCtrl($scope, testFactory){
$scope.name = testFactory.getName();
testFactory.setName(''hello2'');
}
function GoodbyeCtrl($scope, testFactory){
$scope.name = testFactory.getName();
testFactory.setName(''hello3'');
}
function ctrl2($scope, testFactory){
$scope.name = testFactory.getName();
}
Espero eso ayude.
Traté de pasar el valor de un módulo a otro módulo en angularjs. usando .value que funciona bien.
trabajando:-
var app = angular.module(''app'', []);
app.value(''movieTitle'', ''The Matrix'');
var app1 =angular.module(''app1'', [''app'']);
app1.controller(''MyController'', function (movieTitle) {
//Here I am getting value. which is working fine.
console.log(movieTitle)
})
No funciona:-
var app = angular.module(''app'', []);
app.value(''movieTitle'', ''The Matrix'');
app.controller(''MyController'', function (movieTitle) {
//Here I override the value.
movieTitle = "The Matrix Reloaded";
})
var app1 =angular.module(''app1'', [''app'']);
app1.controller(''MyController'', function (movieTitle) {
//Here I am getting old value not update value.
console.log(movieTitle)
})
En la segunda muestra traté de actualizar el valor, su actualización está bien. pero mientras estoy accediendo al valor de otro módulo, esa vez que muestra solo el valor anterior no actualizado, alguien me puede ayudar con esto. donde confundí ...
Las cadenas de JavaScript son inmutables, por lo que no puede actualizar el valor inyectado (ya que es una cadena); solo está cambiando el contenido de la variable inyectada. Podría tomar otro enfoque para contener la cadena dentro de un objeto, ahora puede actualizar la cadena en el objeto:
var movie = { title: ''The Matrix'' };
angular.module(''app'', [])
.value(''movie'', movie)
.controller(''MyController'', function (movie) {
//Here I override the value.
movie.title = "The Matrix Reloaded";
});
angular.module(''app1'', [''app''])
.controller(''MyController'', function (movie) {
console.log(movie.title);
});