2014-01-15 108 views
0

這裏有什麼問題?綁定在Angular中不起作用

JSFiddle

function SecondCtrl($scope, Data) { 
    $scope.data = Data; 

    $scope.reversedMessage = function(message) { 
    return message.split("").reverse().join(""); 
    }; 
} 
+1

你缺少許多步驟...好像沒有創建模塊...控制器不添加到模塊... ...有沒有提供商'Data' –

+0

一個簡單的示例用硬編碼的數據http://jsfiddle.net/arunpjohny/mH5uH/1/ –

回答

2

正如阿倫在他的評論中提到的,你在這裏失去了幾個關鍵要素:

  1. 你不這樣引導您的應用程序。您需要使用the ng-app directiveangular.bootstrap

  2. 由於您將SecondCtrl定義爲全局函數(這不是最佳實踐),因此您需要設置JSFiddle以在onLoad之前加載JavaScript;我用No wrap - in <head>

    screenshot

  3. 你注入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(""); 
    }; 
});