javascript - एनजी-शामिल का उपयोग करते समय गुंजाइश खोना




2 Answers

यह ng-include है क्योंकि एक नया बच्चा गुंजाइश बनाता है, इसलिए $scope.lineText नहीं बदला जाता है। मुझे लगता है कि this वर्तमान दायरे को संदर्भित करता है, इसलिए यह this.lineText सेट किया जाना चाहिए।

मेरे पास यह मॉड्यूल मार्ग है:

var mainModule = angular.module('lpConnect', []).
    config(['$routeProvider', function ($routeProvider) {
    $routeProvider.
        when('/home', {template:'views/home.html', controller:HomeCtrl}).
        when('/admin', {template:'views/admin.html', controller:AdminCtrl}).
        otherwise({redirectTo:'/connect'});
}]);

होम एचटीएमएल:

<div ng-include src="views.partial1"></div>

partial1 एचटीएमएल:

<form ng-submit="addLine()">
    <input type="text" ng-model="lineText" size="30" placeholder="Type your message here">
</form>

HomeCtrl :

function HomeCtrl($scope, $location, $window, $http, Common) {
    ...
    $scope.views = {
        partial1:"views/partial1.html"
    };

    $scope.addLine = function () {
        $scope.chat.addLine($scope.lineText);
        $scope.lines.push({text:$scope.lineText});
        $scope.lineText = "";
    };
...
}

addLine फ़ंक्शन में $scope.lineText undefined , इसे ng-controller="HomeCtrl" को partial1.html जोड़कर हल किया जा सकता है, हालांकि यह नियंत्रक को दो बार बुलाया जाता है। मुझे यहां क्या समझ नहीं आ रहा है?




स्वीकृत उत्तर के रूप में इसका उपयोग करने के बजाय, $parent उपयोग करें। तो आपके partial1.html में आपके पास होगा:

<form ng-submit="$parent.addLine()">
    <input type="text" ng-model="$parent.lineText" size="30" placeholder="Type your message here">
</form>

यदि आप ng-include या अन्य निर्देशों के दायरे के बारे में अधिक जानना चाहते हैं, तो इसे देखें : https://github.com/angular/angular.js/wiki/Understanding-Scopes#ng-include




Related