$ scope没有得到任何值

时间:2016-02-12 22:33:54

标签: angularjs angularjs-scope

这就是我的index.html的结构。

<html ng-app='information'>
<body ng-controller="FirstController as first>
<div ng-controller="SecondController as second>

  <div id="information">
    <myOwnDirective ng-controller="ThirdController as thirdCtrl"></myOwnDirective>
  </div>

这是我的自定义指令。

(function() {

    var app = angular.module('information', ['ui.bootstrap']);

    app.directive('myOwnDirective', function(){
    return {
        restrict: 'E',
        templateUrl: 'my-own-directive.html',

        };  
    });

这是一个自定义指令模板。我 - 拥有 - directive.html

<uib-accordion tag ng-repeat="info in first">
<form ng-submit="thirdCtrl.updateInformation()">
<div class="form-group">
        <label for="someprop">Property</label> <input type="text" name="someprop"
            class="form-control" ng-model="info.propValue"
            ng-readonly="info.propValue">
    </div>
<button type="submit" class="btn btn-success btn-lg btn-block">Click</button>
</form>

这是我的脚本文件:myScript.js

(function() {

    angular.module('information').controller('ThirdController', [ '$scope', function($scope) {

        console.log("In third controller");          // This prints     
        this.updateInformation = function() { 
            console.log("Inside updateInformation");
            console.log("Inside scope is: "+ $scope)     // It is undefined
        };   
    }]);       
})();

我想得到的是从范围获取info.propValue的值,但我似乎无法得到它。它总是显示为未定义。我有一个很长的形式,我想读的内容,但我似乎无法得到价值观。一旦我拥有它们,我将使用$ http进行Ajax调用。另外,如果我尝试通过执行$ scope.updateInformation()来调用函数updateInformation(),它不会调用,但如果我执行此操作,它会被调用.updateInformation()。为什么?我错过了什么或我做错了什么?任何帮助表示赞赏。已经坚持了很长一段时间。谢谢。

0 个答案:

没有答案