>  Q&A  >  본문

angular.js - angular中ng-init中定义值在控制器里面获取不到值

  1. 我的问题:
    如题: angular中ng-init中定义值在控制器里面获取不到值

  2. 相关代码:

<p class="container" ng-app="app" ng-controller="ctrl" ng-init="demo='风一样的男子'">
    <h1>ng-init</h1>
    <input ng-model="demo" type="text">
    demo = {{demo}}

    <button type="button" ng-click="demoClick()">button</button>
</p>
(function(angular) {
    'use strict';
    var app = angular.module('app', []).controller('ctrl', ctrl);

    function ctrl ($scope, $http) {
        console.log('直接获取: ' + $scope.demo); // undefined

        $http.post('/demo', {
            direction: $scope.demo // undefined
        });

        $scope.demoClick = function () {
            console.log('click: ' + $scope.demo); // 风一样的男子

            $http.post('/demo', {
            direction: $scope.demo // 风一样的男子
        });
        };
    }
}(angular));

WHY?

为情所困为情所困2684일 전526

모든 응답(3)나는 대답할 것이다

  • 世界只因有你

    世界只因有你2017-05-15 17:07:49

    여기에는 각 명령어의 컴파일 및 연결 프로세스가 포함됩니다. 동일한 노드에 ngController 명령어가 있는 경우 다른 명령어보다 먼저 컴파일 프로세스를 실행한다는 점에 유의해야 합니다(우선순위는 500이고 ngInit의 우선순위는 450입니다). 따라서 우리가 흔히 볼 수 있는 컨트롤러 기능인 ngController의 링크 기능을 실행할 때 ngInit이 컴파일 과정을 완료하지 않아 자연스럽게 데모의 가치를 얻을 수 없게 됩니다.

    http://stackoverflow.com/ques...

    회신하다
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-15 17:07:49

    콘솔이 아직 초기화되지 않았습니다. watch에서 콘솔을 사용해 보세요

    회신하다
    0
  • PHP中文网

    PHP中文网2017-05-15 17:07:49

    위 위치에서 데모에 접속하고 싶다면. 나는 그것이 사용되어야한다고 생각합니다. $rootscope.demo 또는 $parentscope.demo

    위 문제는 범위 문제여야 합니다.

    회신하다
    0
  • 취소회신하다