Что здесь не так?Binding не работает в Angular
function SecondCtrl($scope, Data) {
$scope.data = Data;
$scope.reversedMessage = function(message) {
return message.split("").reverse().join("");
};
}
Что здесь не так?Binding не работает в Angular
function SecondCtrl($scope, Data) {
$scope.data = Data;
$scope.reversedMessage = function(message) {
return message.split("").reverse().join("");
};
}
Как Arun отметил в своем комментарии, вы пропустили несколько ключевых элементов здесь:
Вы не развернув приложение. Вам нужно будет использовать либо the ng-app
directive, либо angular.bootstrap
.
Поскольку вы определяете SecondCtrl
как глобальную функцию (это не самая лучшая практика), вам необходимо установить JSFiddle для загрузки JavaScript до onLoad
; Я использовал No wrap - in <head>
:
Вы инъекционный Data
в контроллер, но вы не определили Data
как сервис. Для этого вам понадобится create a service.
Вот JSFiddle, который демонстрирует, как все будет выглядеть, если вы будете следовать передовой опыт и создать модуль для вашего контроллера в дополнение к фиксации других вопросов: http://jsfiddle.net/BinaryMuse/TcPGT/
<div ng-app='myApp'>
<div ng-controller="SecondCtrl">
<input type="text" ng-model="data.message">
<h1>{{ reversedMessage(data.message) }}</h1>
</div>
</div>
var app = angular.module('myApp', []);
app.value('Data', {
message: 'This is my message.'
});
app.controller('SecondCtrl', function($scope, Data) {
$scope.data = Data;
$scope.reversedMessage = function(message) {
return message.split("").reverse().join("");
};
});
Ваш код я думаю, что неполное. Ям. Присоединение полного кода здесь. Пройдите через него, и я надеюсь, что это то, что вы ищете.
вам не хватает много шагов ... как нет модуля создан ... контроллер не добавляется к модулю ... нет поставщика для 'Data' –
простой образец с жестко закодированными данными http://jsfiddle.net/arunpjohny/mH5uH/1/ –