简体   繁体   English

使用AngularJS在控制器中传递数据

[英]Passing Data in Controllers using AngularJS

I have 2 views in my application. 我的应用程序中有2个视图。 I would like to pass 1st view input to my 2nd view placeholder. 我想将第一视图输入传递给第二视图占位符。 I have created a service below 我在下面创建了服务

.service('greeting', function Greeting() {

    var greeting = this;

greeting.message = 'Default';

})

.controller('LogonController', function LogonController(greeting) {
    var first = this;

    first.greeting = greeting;
})

.controller('VideoController', function VideoController(greeting) {
    var second = this;

    second.greeting = greeting;

});

and below are my 2 differents view using different controllers 以下是我使用不同控制器的2个不同视图

<div ng-controller="LogonController as first">
    <form>
        <input type="text" data-ng-model="first.greeting.message" placeholder="{{ first.greeting.message }}"> //1ST VIEW
    </form>
</div>

<div ng-controller="VideoController as second">
    <h1>{{ second.greeting.message }}</h1>
<div> //2ND VIEW

I am expecting to get a placeholder with Default message in my 1st form view before i even type my input. 我希望在我输入第一个表格之前就获得一个带有Default消息的占位符。

How would i get this to work. 我将如何使它工作。

Maybe whatever browser you are testing this in doesn't like the unclosed <div> where you are adding your VideoController : 也许您正在其中测试的任何浏览器都不喜欢在其中添加VideoController的未封闭<div>

<div ng-controller="VideoController as second">
    <h1>{{ second.greeting.message }}</h1>
<div> <-- this should be a closing /div

Here is a working version: 这是一个工作版本:

<div ng-app="app">
    <div ng-controller="LogonController as first">
        <form>
            <input type="text" data-ng-model="first.greeting.message" placeholder="{{ first.greeting.message }}">
        </form>
    </div>

    <div ng-controller="VideoController as second">
        <h1>{{ second.greeting.message }}</h1>
    </div>
</div>

JS: JS:

angular.module('app', [])
    .service('greeting', function Greeting() {
        var greeting = this;
        greeting.message = 'Default';
    })
    .controller('LogonController', function LogonController(greeting) {
        var first = this;
        first.greeting = greeting;
    })
    .controller('VideoController', function VideoController(greeting) {
        var second = this;
        second.greeting = greeting;
    });

Working JSFiddle with above 在上面使用JSFiddle

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM