angularjs select标签中参数的传递

  今天做的一个demo中需要一个下拉选择框,并根据所选择的内容向服务器发送请求。

  首先百度了一下angularjs关于select的使用,一种采用ng-repeat的方式。

<select ng-model="stuTerm">
<option ng-repeat="term in terms" value="{{term.val}}">{{term.text}}</option>
</select>
<p>{{stuTerm.text}}</p>  
<button ng-click="searchScoreY()">查询</button>

  我的想法是根据stuTerm.text向服务器发送请求。

$scope.searchScore = function () {
            $http.get("userCenter/js/scoreList.json", {
                params: {
                    XH: window.localStorage.stuId,
                    XQ: stuTerm.text
                }
            }).then(function sucCall(res) {
                $scope.scList = res.data;
            }, function errCAll(res) {
                console.log(res);
            })
};

  但是这个时候报错了stuTerm.text undefined。我以为是stuTerm.text没有在作用域里面定义的原因,就在一开始定义了$scope.stuTerm = "";但是这时候stuTerm还是等于空。即使select选择了新的东西,<p>{{stuTerm.text}}</p>也更新了。$scope.stuTerm还是空。

  诶?ng-model不是$scope <-> view的双向绑定么,为什么view更新了,$scope却获取不到呢?我觉得应该是ng-repeat会创建一个新的子作用域。而$scope作用域获取不到stuTerm的内容。所以我采用了在searchScore()中传入stuTerm.val进行调用。

<button ng-click="searchScoreY(stuTerm.val)">查询</button>
$scope.searchScore = function (t) {
    $http.get("", {
        params: {
            XH: window.localStorage.stuId,
            XQ: t
        }
    }).then(function sucCall(res) {
        $scope.scList = res.data;
    }, function errCAll(res) {
        console.log(res);
    })
};

嗯,这回是对了。上面关于作用域的问题如果有大佬看到,欢迎大佬指点啊!

时间: 2024-08-05 11:14:11

angularjs select标签中参数的传递的相关文章

select标签中怎样控制option的显示数量

最近做项目,需要动态加载数据显示到下拉列表中. 刚开始用select标签,由于数据较多,一次性全部加载,下拉列表会拖得很长,不忍直视(默认会显示20个). 我想控制select中的option显示的个数,例如:只显示5个,其余的通过滚动条来控制显示. 经过反复折腾,发现直接操作select标签无法达到目的,于是改换策略,用input标签和ul标签来模拟select标签. 效果: Demo下载 select标签中怎样控制option的显示数量,布布扣,bubuko.com

web页面中参数的传递方法

在web页面中参数的传递方法多样,主要有以下几种: Viewstate,Querystring,Session, Application,Cookie,Cache. Viewstate: 特点:服务启启动的各种控件的视图状态:包括控件的所有属性值:Enableviewstate可以启用和禁用视图状态:        优点:防止新产生一个页面实例后,丢失前一个页面的状态信息: 例如:在用户登录注册验证过程中,无须使用导致服务器往返行程的代码,我们只需要在客户端进行验证就可以了.另外有些控件的初始化

获取select标签中option的value值

<select id="teacher" name="tea-list" form=""> <option value="none">请选择老师</option> <option value="1">老师1</option> </select> //获取select标签中option的value值 var $teacher=$('#te

清空select标签中option选项的3种不同方式

本文为大家详细介绍下使用3种不同方式来清空select标签中option选项,具体语法格式如下,感兴趣的朋友可以参考下哈,希望对大家有所帮助 方法一 复制代码 代码如下: document.getElementById("selectid").options.length = 0; 方法二 复制代码 代码如下: document.formName.selectName.options.length = 0; 方法三 复制代码 代码如下: document.getElementById(

js函数中参数的传递

先看一道JS的笔试题: var setObj=function(o){ o.name="xiaoming"; o={}; o.name="xiaohong"; } var p={name:"xixi",age:24}; setObj(p); console.log(p); 答案是{name:xiaoming,age24}: 在JavaScript中函数参数默认为引用类型. 在阅读本章节之前建议参阅一下两章节:1.值类型可以参阅javascript

JavaScript中参数的传递

变量类型 了解参数的传递之前我们来复习下变量的类型,JavaScript中的变量有5个基本数据类型(Undefined, Null, Boolean, Number, String)和引用数据类型(Object,Function,Array等). 基本类型和引用类型的区别 // 声明一个String类型的变量 var str = "string"; // 声明一个引用类型的变量,并添加属性 var person = new Object(); person.name = "J

C语言中参数的传递

普通情况: 调用函数参数的传递,是采取入栈的方式,先上图一张: Fun是被调用的函数,而为了演示其参数传递的过程,特意多设了几个参数,其传递参数的汇编代码如下: 可以看出,汇编代码中将这9个参数的前5个入栈,后几个直接通过寄存器来传递,而进入函数中出栈代码如下: 可以看出先出栈之后R0,R1,R2,R3(这四个不经过出栈入栈,直接通过寄存器传递),r5,r6,r7,r8,r12装载参数. 在实验得出个很重要的结论:并不是在参数传递过程中所有的参数都需要入栈,一部分参数通过R0-R3传递,甚至参数

python函数中参数的传递

Python唯一支持的参数传递方式是『共享传参』(call by sharing)多数面向对象语言都采用这一模式,包括Ruby.Smalltalk和Java(Java的引用类型是这样,基本类型按值传递)共享传参是指函数的各个形式参数获得实参中各个引用的副本:也就是说,函数内部的形参是实参的别名(alias)这种方案的结果是,函数可能会修改作为参数传入的可变对象,但是无法修改那些对象的标识(即不能把一个对象替换为另一个对象. 1 >>> def fun(num,l,d): 2 ... nu

Swift 2.0学习笔记(Day 20)——函数中参数的传递引用

原创文章,欢迎转载.转载请注明:关东升的博客 参数的传递引用 类是引用类型,其他的数据类型如整型.浮点型.布尔型.字符.字符串.元组.集合.枚举和结构体全部是值类型. 有的时候就是要将一个值类型参数以引用方式传递,这也是可以实现的,Swift提供的inout关键字就可以实现.看下面的一个示例: func increment(inout value:Double, amount:Double = 1.0) { value += amount } var value : Double = 10.0