Angular - Как изменить значение свойства $ scope с помощью функции в $ scope

0

Как изменить значение свойства $ scope через функцию в $ scope?

HTML,

<div ng-app="myApp" ng-controller="SimpleController">{{greeting}}</div>

угловая,

var app = angular.module("myApp", []);

app.controller('SimpleController', function($scope) {
    $scope.name = "World";
    $scope.greeting = "Hi";
    $scope.sayHello = function() {
        return $scope.greeting = "Hello " + $scope.name;
    };
});

Результат,

Hi

Что я ожидаю,

Hello World

Или я могу добавить свойства в $ scope через функцию?

app.controller('SimpleController', function($scope) {
    $scope.name = "World";
    $scope.sayHello = function() {
        return $scope.greeting = "Hello " + $scope.name;
    };
});

HTML,

<div ng-app="myApp" ng-controller="SimpleController">{{greeting}}</div> 

Я ничего не получаю...

Есть идеи?

Теги:

3 ответа

2
Лучший ответ

ok, $scope.greeting определяется внутри функции $scope.sayHello поэтому нет свойства scope, называемого greeting до выполнения функции sayHello().

выполнить functin и greeting будут доступны в HTML

app.controller('SimpleController', function($scope) {
    $scope.name = "World";
    $scope.sayHello = function() {
        return $scope.greeting = "Hello " + $scope.name;
    };

    //execute the function after execution greeting will be available in the html
    $scope.sayHello();
});

пример

не имеет значения, return или not return ничего

внутри этой функции

 return $scope.greeting = "Hello " + $scope.name;

сначала $scope.greeting присваивает значение, поэтому после этого будет $scope.greeting в html.

  • 0
    Ой, верно! благодарю вас!
2

Вам не нужно возвращать задание, просто установите свойство $scope и оно будет работать.

Обновите свой метод до:

$scope.sayHello = function() {
    $scope.greeting = "Hello " + $scope.name;
};
1

Вам нужно всего лишь:

HTML,

<div ng-app="myApp" ng-controller="SimpleController">{{sayHello()}}</div>

угловая,

var app = angular.module("myApp", []);

app.controller('SimpleController', function($scope) {
    $scope.name = "World";
    $scope.greeting = "Hi";
    $scope.sayHello = function() {
        return $scope.greeting = "Hello " + $scope.name;
    };
});

Я надеюсь, что это решит вашу проблему

Ещё вопросы

Сообщество Overcoder
Наверх
Меню