2

我有一个 div,我想在其中显示来自文本区域的文本。如何将文本从文本区域返回到 angularjs 中的 div。我是 angularjs 的新手,不知道它是如何工作的。请帮忙。谢谢

4

2 回答 2

1
<textarea data-ng-model="myModel"></textarea>    
<div>{{ myModel }}</div>

我真的建议看一些视频,因为这是 angularjs 的一个非常基本的概念

于 2013-06-14T13:40:26.897 回答
0

正如@blaster 所说,在控制器之间共享数据的一种好方法是使用 Angular 服务。

在这个小提琴中可以看到一个工作示例:http: //jsfiddle.net/orlenko/5WhKW/

在这个例子中,我们定义了两个控制器:

<div ng-controller="SourceController">
    <textarea ng-model="message" ng-change="propagate()"></textarea>
</div>
<div ng-controller="DestinationController">
    <div>{{message}}</div>
</div>

SourceController 将通过服务向 DestinationController 发送有关数据更改的通知。

该服务用于$rootScope.$broadcast让全世界知道它有更新:

myModule.factory('MessageSharing', function ($rootScope, $log) {
    var share = {};

    share.message = '';

    share.broadcast = function (msg) {
        $log.log('broadcasting ' + msg);
        this.message = msg;
        this.broadcastItem();
    };

    share.broadcastItem = function () {
        $log.log('broadcasting  this ' + this.message);
        $rootScope.$broadcast('handleBroadcast');
    };

    return share;
});

我们的目标控制器将使用以下命令订阅“handleBroadcast”事件$on

function DestinationController($scope, $log, MessageSharing) {
    $log.log('Initializing DestinationController');
    $scope.message = '';
    $scope.$on('handleBroadcast', function () {
        $log.log('Got the message: ' + MessageSharing.message);
        $scope.message = MessageSharing.message;
    });
}

最后,SourceController 将通过服务发布更新:

function SourceController($scope, $log, MessageSharing) {
    $log.log('Initializing SourceController');
    $scope.message = '';

    $scope.propagate = function () {
        $log.log('Propagating ' + $scope.message);
        MessageSharing.broadcast($scope.message);
    };
}
于 2013-06-16T06:06:01.167 回答