Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS-无法从ng模型到控制器获取值_Javascript_Angularjs_Ionic Framework_Ionic - Fatal编程技术网

Javascript AngularJS-无法从ng模型到控制器获取值

Javascript AngularJS-无法从ng模型到控制器获取值,javascript,angularjs,ionic-framework,ionic,Javascript,Angularjs,Ionic Framework,Ionic,我尝试使用angular的ng模型来存储它的值,并使用ng单击将值传递给控制器。对于我当前的代码,我总是收到未定义的值。我做错了什么 HTML 路线 .config(function($stateProvider, $urlRouterProvider) { $urlRouterProvider.otherwise('/feeds') $stateProvider .state('login', { url: '/', templateUrl: 'tem

我尝试使用angular的ng模型来存储它的值,并使用ng单击将值传递给控制器。对于我当前的代码,我总是收到未定义的值。我做错了什么

HTML

路线

.config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/feeds')

$stateProvider
    .state('login', {
        url: '/',
        templateUrl: 'templates/login.html',
        controller: 'LoginController'
    })
    .state('profile', {
        url: '/profile',
        templateUrl: 'templates/profile.html',
        controller: 'ProfileController'
    })
    .state('feeds', {
        url: '/feeds',
        templateUrl: 'templates/feeds.html',
        controller: 'FeedsController'
    })
    .state('post', {
        url: '/post',
        templateUrl: 'templates/post.html',
        controller: 'PostController'
    })
})

我认为如果您将所有内容都包装在ng控制器中,那么您的代码应该可以工作:

<div ng-controller="MyController">
    <!-- your HTML here -->
</div>


在JSFiddle上查看它:

我认为如果您将所有内容都打包到
ng controller中,那么您的代码应该可以工作:

<div ng-controller="MyController">
    <!-- your HTML here -->
</div>


在JSFiddle上查看它:

我认为如果您将所有内容都打包到
ng controller中,那么您的代码应该可以工作:

<div ng-controller="MyController">
    <!-- your HTML here -->
</div>


在JSFiddle上查看它:

我认为如果您将所有内容都打包到
ng controller中,那么您的代码应该可以工作:

<div ng-controller="MyController">
    <!-- your HTML here -->
</div>


在JSFIDLE上查看它:

正如评论中提到的,我相信您的问题与范围界定有关。ion content指令可能正在使用一个隔离的作用域,因此在其内部设置一个值不会影响其外部的作用域

克服这些问题(以及更多)的一种方法是使用控制器作为语法

发生这种情况的另一个原因是没有人初始化提要对象。如果feed未定义,则不能只执行feed.status='sth'。您需要先初始化提要

试着做一些类似的事情:

.state('post', {
        url: '/post',
        templateUrl: 'templates/post.html',
        controller: 'PostController',
        controllerAs: 'vm'
    })
在控制器中:

.controller("PostController", function($http, $localStorage, $location){
    var vm = this;
    vm.feed = {}; //initialise feed object
    $http.get("https://graph.facebook.com/v2.2/me", { params: { access_token: $localStorage.accessToken, fields: "id, location, picture", format: "json" }}).then(function(result) {
        vm.profileData = result.data;
        console.log( result.data);
    }, function(error) {
        alert("There is a problem with your profile");
        console.log(error);
    });

    vm.post = function(data){
        console.log(data);
    }
});
然后在模板中尝试:

<div>
<ion-content>
    <div class="list">
        <label class="item item-input">
            <textarea ng-model="vm.feed.status"></textarea>
        </label>
    </div>
</ion-content>

<div class="tabs tabs-icon-left">
    <a class="tab-item" ng-click="vm.post(vm.feed)">
        <i class="icon ion-arrow-right-b"></i>
    </a>
</div>
</div>


让我们知道它是否有效

如评论中所述,我相信您的问题与范围界定有关。ion content指令可能正在使用一个隔离的作用域,因此在其内部设置一个值不会影响其外部的作用域

克服这些问题(以及更多)的一种方法是使用控制器作为语法

发生这种情况的另一个原因是没有人初始化提要对象。如果feed未定义,则不能只执行feed.status='sth'。您需要先初始化提要

试着做一些类似的事情:

.state('post', {
        url: '/post',
        templateUrl: 'templates/post.html',
        controller: 'PostController',
        controllerAs: 'vm'
    })
在控制器中:

.controller("PostController", function($http, $localStorage, $location){
    var vm = this;
    vm.feed = {}; //initialise feed object
    $http.get("https://graph.facebook.com/v2.2/me", { params: { access_token: $localStorage.accessToken, fields: "id, location, picture", format: "json" }}).then(function(result) {
        vm.profileData = result.data;
        console.log( result.data);
    }, function(error) {
        alert("There is a problem with your profile");
        console.log(error);
    });

    vm.post = function(data){
        console.log(data);
    }
});
然后在模板中尝试:

<div>
<ion-content>
    <div class="list">
        <label class="item item-input">
            <textarea ng-model="vm.feed.status"></textarea>
        </label>
    </div>
</ion-content>

<div class="tabs tabs-icon-left">
    <a class="tab-item" ng-click="vm.post(vm.feed)">
        <i class="icon ion-arrow-right-b"></i>
    </a>
</div>
</div>


让我们知道它是否有效

如评论中所述,我相信您的问题与范围界定有关。ion content指令可能正在使用一个隔离的作用域,因此在其内部设置一个值不会影响其外部的作用域

克服这些问题(以及更多)的一种方法是使用控制器作为语法

发生这种情况的另一个原因是没有人初始化提要对象。如果feed未定义,则不能只执行feed.status='sth'。您需要先初始化提要

试着做一些类似的事情:

.state('post', {
        url: '/post',
        templateUrl: 'templates/post.html',
        controller: 'PostController',
        controllerAs: 'vm'
    })
在控制器中:

.controller("PostController", function($http, $localStorage, $location){
    var vm = this;
    vm.feed = {}; //initialise feed object
    $http.get("https://graph.facebook.com/v2.2/me", { params: { access_token: $localStorage.accessToken, fields: "id, location, picture", format: "json" }}).then(function(result) {
        vm.profileData = result.data;
        console.log( result.data);
    }, function(error) {
        alert("There is a problem with your profile");
        console.log(error);
    });

    vm.post = function(data){
        console.log(data);
    }
});
然后在模板中尝试:

<div>
<ion-content>
    <div class="list">
        <label class="item item-input">
            <textarea ng-model="vm.feed.status"></textarea>
        </label>
    </div>
</ion-content>

<div class="tabs tabs-icon-left">
    <a class="tab-item" ng-click="vm.post(vm.feed)">
        <i class="icon ion-arrow-right-b"></i>
    </a>
</div>
</div>


让我们知道它是否有效

如评论中所述,我相信您的问题与范围界定有关。ion content指令可能正在使用一个隔离的作用域,因此在其内部设置一个值不会影响其外部的作用域

克服这些问题(以及更多)的一种方法是使用控制器作为语法

发生这种情况的另一个原因是没有人初始化提要对象。如果feed未定义,则不能只执行feed.status='sth'。您需要先初始化提要

试着做一些类似的事情:

.state('post', {
        url: '/post',
        templateUrl: 'templates/post.html',
        controller: 'PostController',
        controllerAs: 'vm'
    })
在控制器中:

.controller("PostController", function($http, $localStorage, $location){
    var vm = this;
    vm.feed = {}; //initialise feed object
    $http.get("https://graph.facebook.com/v2.2/me", { params: { access_token: $localStorage.accessToken, fields: "id, location, picture", format: "json" }}).then(function(result) {
        vm.profileData = result.data;
        console.log( result.data);
    }, function(error) {
        alert("There is a problem with your profile");
        console.log(error);
    });

    vm.post = function(data){
        console.log(data);
    }
});
然后在模板中尝试:

<div>
<ion-content>
    <div class="list">
        <label class="item item-input">
            <textarea ng-model="vm.feed.status"></textarea>
        </label>
    </div>
</ion-content>

<div class="tabs tabs-icon-left">
    <a class="tab-item" ng-click="vm.post(vm.feed)">
        <i class="icon ion-arrow-right-b"></i>
    </a>
</div>
</div>



并让我们知道它是否有效

发布您的完整代码controller@entre当然Updated在HTML中声明的
ng controller
在哪里?请使用
controller as
语法。这使得在不同范围内处理变量的麻烦变得容易多了@GeneLim您可以在UIRouter声明中使用更多属性,特别是controllerAs:“vm”发布您的路由器的完整代码controller@entre当然Updated在HTML中声明的
ng controller
在哪里?请使用
controller as
语法。这使得在不同范围内处理变量的麻烦变得容易多了@GeneLim您可以在UIRouter声明中使用更多属性,特别是controllerAs:“vm”发布您的路由器的完整代码controller@entre当然Updated在HTML中声明的
ng controller
在哪里?请使用
controller as
语法。这使得在不同范围内处理变量的麻烦变得容易多了@GeneLim您可以在UIRouter声明中使用更多属性,特别是controllerAs:“vm”发布您的路由器的完整代码controller@entre当然Updated在HTML中声明的
ng controller
在哪里?请使用
controller as
语法。这使得在不同范围内处理变量的麻烦变得容易多了@GeneLim您可以在UIRouter声明中使用更多属性,特别是controllerAs:“vm”。从我从您的链接中读到的内容来看,controllerAs语法确实是一个很大的帮助。我从来没用过,但从现在起我会用的。谢谢,它很管用!您好,我在Ionic中使用controllerAs语法时发现了一个问题。当前有一个bug,可以在此处查看。临时解决方案knwon是控制器:“作为vm的后控制器”。从我从你们的链接中读到的内容来看,controllerAs语法真的能帮上大忙。我从来没用过,但从现在起我会用的。谢谢,它很管用!您好,我在Ionic中使用controllerAs语法时发现了一个问题。当前有一个bug,可以在此处查看。临时解决方案knwon是控制器:“作为vm的后控制器”。从我从你们的链接中读到的内容来看,controllerAs语法真的能帮上大忙。我从来没用过,但从现在起我会用的。谢谢,它很管用!您好,我在Ionic中使用controllerAs语法时发现了一个问题。当前有一个bug,可以在此处查看。暂时的