Как изменить значение свойства $ 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>
Я ничего не получаю...
Есть идеи?
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.
Вам не нужно возвращать задание, просто установите свойство $scope
и оно будет работать.
Обновите свой метод до:
$scope.sayHello = function() {
$scope.greeting = "Hello " + $scope.name;
};
Вам нужно всего лишь:
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;
};
});
Я надеюсь, что это решит вашу проблему