首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角控制器$scope.fId显示未定义值

角控制器$scope.fId显示未定义值
EN

Stack Overflow用户
提问于 2015-10-07 09:54:45
回答 3查看 546关注 0票数 1

我想在角控制器FollowBtnCtrl中使用输入FollowBtnCtrl值,我做了一个按钮,称为followMe()函数,定义在FollowBtnCtrl控制器内,当我在控制器内得到$scope.fId值时,它显示了未定义的值。请检查我的代码,并告诉我哪里错了,对不起,这个愚蠢的问题,但我是新来的angularjs。提前感谢

角控制器:

代码语言:javascript
复制
.controller("FollowBtnCtrl", function ($scope) {
    $scope.followMe = function () {
        alert($scope.fId);
    }
});

Html代码:

代码语言:javascript
复制
<div ng-controller="FollowBtnCtrl">
    <ons-toolbar-button>
        <input ng-model="fId" id="fId" type="hidden" value="10" />
        <button ng-click="followMe()" class="followButton button button">
            Hello
        </button>
    </ons-toolbar-button>
</div>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-10-07 10:02:03

ons-toolbar-button指令创建了另一个作用域。您可以访问父followMe(),但父变量不能访问该作用域的定义变量(fId)。很多解决方案..。这里有一个:

ng-click="followMe(fId)"$scope.followMe = function(fId){...}

票数 1
EN

Stack Overflow用户

发布于 2015-10-07 10:06:18

在新的角度应用程序中,在fId中使用value属性是一个常见的错误。如果可以避免,则不希望将值写入服务器上的HTML中。事实上,如果您可以避免让服务器完全呈现HTML,那就更好了。

理想情况下,您希望发送您的角度HTML模板,然后通过JSON中的$http拉下您的值,并将它们放在您的作用域中。但是,如果您想通过html提供值,可以使用ng-init来实现。

<input ng-model="fId" id="fId" type="hidden" ng-init="fId=10" />

另见:AngularJS - Value attribute on an input text box is ignored when there is a ng-model used?

票数 1
EN

Stack Overflow用户

发布于 2015-10-07 10:08:01

ng-model用于双向绑定,即更改输入的值。

这就是为什么,您需要做的是删除输入的value属性,并在控制器中初始化fId

您的意见:

代码语言:javascript
复制
<input ng-model="fId" id="fId" type="hidden" />

你的控制器:

代码语言:javascript
复制
.controller("FollowBtnCtrl", function ($scope) {
    $scope.fId = 10;

    $scope.followMe = function () {
       alert($scope.fId);
    }
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32989187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档