javascript - way - ng-repeat




Wie update.value in Controller angularjs? (2)

Der Wert ist im Grunde eine string , die ein primitiver Typ ist und keine Referenz hat, so dass der Wert einmal gebunden wird.

Ich habe eine Fiedel mit einer Fabrik gemacht und sie für Inter-Modul-Anwendung als Ihre Anforderung verwendet

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

Ich hoffe es hilft.

Ich habe versucht, Wert von einem Modul zu einem anderen Modul in angularjs übergeben. Verwenden von .value, das funktioniert gut.

Arbeiten:-

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

Funktioniert nicht:-

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

Im zweiten Beispiel habe ich versucht, den Wert zu aktualisieren. aber während ich auf den Wert von anderen Modulen zugreife, zeigt es nur alte Werte an, nicht aktualisiert man kann mir dabei helfen. wo ich falsch verstanden habe ...


JavaScript-Strings sind unveränderlich, daher können Sie den injizierten Wert nicht aktualisieren (da es sich um eine Zeichenfolge handelt). Sie ändern lediglich den Inhalt der injizierten Variablen. Sie könnten einen anderen Ansatz verwenden, um die Zeichenfolge in einem Objekt zu enthalten. Jetzt können Sie die Zeichenfolge im Objekt aktualisieren:

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




angularjs-scope