Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在angularjs中没有更新指令作用域变量

在angularjs中没有更新指令作用域变量
EN

Stack Overflow用户
提问于 2015-12-01 08:17:51
回答 1查看 45关注 0票数 0

我在指令中声明了一个控制器。我正在对数据列表执行添加和删除操作。但是当我在list中添加数据时,作用域全局变量并没有得到更新。我正在使用该服务来获取数据。我的服务是//一个角度存储服务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var storageService = angular.module('storageService', [])
    .service('storage', function(){

    var todoKey = "todo_data";

    this.getTodos = function(){
        todolist = (localStorage.getItem(todoKey)!==null)?JSON.parse(localStorage.getItem(todoKey)) : [];
        return todolist     
        }
    this.addTodo = function(taskName){
        console.log("storage"+ taskName.text);
        todoList = this.getTodos()
        console.log(todoList);
        todoList.push(taskName);
        console.log(todoList);
        localStorage.setItem(todoKey, JSON.stringify(todoList));
      }
   this.removeTodo = function(taskName){
    var todoList = this.getTodos();
    todoList.splice($.inArray(taskName, todoList), 1);
    localStorage.setItem(todoKey, JSON.stringify(todoList));
     }

  this.completeTodo = function(task){
      task.completed = true;
  } 
});

我通过angular指令调用这个服务controller.My指令是

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
app.directive("todoList", function(){
    return{
       restrict: 'E',
       replace: 'true',
       templateUrl: 'partial_template/todolist.html',
       controller: function($scope, $element, storage){
       $scope.todos = storage.getTodos();
       $scope.addTodo = function(taskName) {
            task = new TODO.task(taskName);
            storage.addTodo(task);
            // create new object
            $scope.taskName = "";
        };

        $scope.removeTodo = function(taskName){
            // remove the task from the todolist
            storage.removeTodo(taskName);
        };
        $scope.completeTodo = function(taskName){
            // change the status of the task
            storage.completeTodo(task)
        };
    }
};

});

当我添加todo项时,它不会不反映在$scope.todos上。如果我们在函数内部更新它,那么它就会得到update.But,我认为它应该反映函数外部的变化。

EN

回答 1

Stack Overflow用户

发布于 2015-12-01 08:22:55

在启动指令控制器时,只需设置一次$scope.todos。最佳选择可能是将todoList作为存储服务中的公共阵列进行维护,并将$scope.todos指向它。否则,您需要在每个更改待办事项列表的函数中更新$scope.todos。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34015619

复制
相关文章
angularjs学习第九天笔记(指令作用域【隔离作用域】研究)
您好,昨天学习了指令作用域为布尔型的情况, 今天主要研究其指针作用域为{}的情况 1、当作用域scope为{}时,子作用域完全创建一个独立的作用域,   此时,子做预约和外部作用域完全不数据交互   但是,在实际应用中,子做作用域也还是要和外部数据交互。        为止,引入了数据绑定概念 2、隔离作用域数据绑定有三种方式:  其一、“@”     格式为:       scope{         属性名称:"@"       }     子外作用域数据交互表现: 隔离的子作用域和外部作用域实现单
小小许
2018/09/20
4050
angularjs学习第九天笔记(指令作用域【隔离作用域】研究)
您好,昨天学习了指令作用域为布尔型的情况, 今天主要研究其指针作用域为{}的情况 1、当作用域scope为{}时,子作用域完全创建一个独立的作用域,   此时,子做预约和外部作用域完全不数据交互   但是,在实际应用中,子做作用域也还是要和外部数据交互。        为止,引入了数据绑定概念 2、隔离作用域数据绑定有三种方式:  其一、“@”     格式为:       scope{         属性名称:"@"       }     子外作用域数据交互表现: 隔离的子作用域和外部作用域实现单
小小许
2018/08/31
5370
angularjs学习第九天笔记(指令作用域【隔离作用域】研究)
AngularJS Scope(作用域)
Scope(作用域) 是应用在 HTML (视图) 和 JavaScript (控制器)之间的纽带。
陈不成i
2021/07/23
1.5K0
【AngularJS】—— 12 独立作用域
前面通过视频学习了解了指令的概念,这里学习一下指令中的作用域的相关内容。 通过独立作用域的不同绑定,可以实现更具适应性的自定义标签。借由不同的绑定规则绑定属性,从而定义出符合更多应用场景的标签。 本篇将会总结下面的内容:   1 为何需要独立作用域   2 如何实现独立作用域   3 作用域的数据绑定 之前有一些错误,是由于replace拼写错误导致的。 拼写正确后,网友发现报错,无法正常工作。这是因为模板中存在单标签<br>,导致模板无法正确解析~ 再次感谢博友们提出的错误! 独立作
用户1154259
2018/01/17
1.4K0
【AngularJS】—— 12 独立作用域
AngularJs之Scope作用域
  AngularJS 中,作用域是一个指向应用模型的对象,它是表达式的执行环境。作用域有层次结构,这个层次和相应的 DOM 几乎是一样的。作用域能监控表达式和传递事件。
用户5640963
2019/07/26
1.6K0
JS中变量作用域 19
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>80-JavaScript-变量作用域</title> <script> /* 1.在JavaScript中定义变量有两种方式 ES6之前: var 变量名称; ES6开始: let 变量名称; */ // 2.两种定义变量方式的区别
贵哥的编程之路
2020/10/28
3.1K0
angularjs学习第八天笔记(指令作用域研究)
angularjs其作用域通过scope来实现,其取值有三种情况:true、false、{}
小小许
2018/08/30
4140
angularjs学习第八天笔记(指令作用域研究)
Python中变量的作用域
我们在写代码过程中会用到很多变量,这些变量会出现在各种代码块中,有的出现在函数块里,有的在函数块外,例如:
py3study
2020/01/19
1.1K0
Java 中变量的作用域
变量的作用域是一个程序的重要组成部分。因为它决定了某个时候每个地方某个变量是否可访问。与 C/C++ 一样。静态语言的作用域在编译期就是确定的。而且独立于函数调用堆栈。
技术从心
2019/08/06
1.9K0
Java 中变量的作用域
Python 中的变量作用域
通常,在块中定义的变量仅在该块中可用。在街区外无法到达。这样的变量称为局部变量。形式参数标识符也表现为局部变量。
很酷的站长
2023/08/15
1740
Python 中的变量作用域
angularJS学习之路(十九)---自定义指令关于独立作用域
1.首先关于  scope:{} 和scope:true 效果是一样的 <!DOCTYPE html> <html ng-app="myApp"> <head> <meta charset="utf-8"> <title></title> </head> <body> <div ng-init="myProperty = 'wow, this is cool'"></div> Surrounding scope: {{ myProperty }} <div myInherit
wust小吴
2019/07/08
4600
变量作用域
*****************************************************************************************************************
十月梦想
2018/08/29
6100
说说Python中变量的作用域?
答:作用域是针对变量而出现。当变量被赋值的时候,变量当前的位置就决定了变量能够被访问到的范围,这个范围就叫变量的作用域,也可以叫变量的命名空间。
用户1564362
2019/11/12
1.1K0
说说Python中变量的作用域?
说说Python中变量的作用域?
小猿会从最基础的面试题开始,每天一题。如果参考答案不够好,或者有错误的话,麻烦大家可以在留言区给出自己的意见和讨论,大家是要一起学习的 。
程序员小猿
2021/01/19
7950
Python变量作用域
  Python 中,程序的变量并不是在哪个位置都可以访问的,访问权限决定于这个变量是在哪里赋值的。
tonglei0429
2019/07/19
1K0
Python 变量作用域
✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的博客 🍊个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 🥭本文内容:Python 变量作用域 ---- Python 变量作用域 1.变量作用域 2.局部变量 3.全局变量 4.同名的局部变量和全局变量 5.global 语句 ---- 1.变量作用域 Python 中规定每个变量都有它的作用域, 即变量只有在作用域范围内才是可见可用的。 作用域能避免程序代码中的名称冲突,在一
小嗷犬
2022/11/15
7300
Python 变量作用域
变量的作用域
变量的作用域 在JavaScript中,根据作用域的不同,变量可以分为两种: 全局变量 局部变量 1. 全局变量 在全局作用域下声明的变量叫做全局变量(在函数外部定义的变量)。 全局变量在代码的任何位置都可以使用 在全局作用域下 var 声明的变量 是全局变量 特殊情况下,在函数内不使用 var 声明的变量也是全局变量(不建议使用) 2.局部变量 在局部作用域下声明的变量叫做局部变量(在函数内部定义的变量) 局部变量只能在该函数内部使用 在函数内部 var 声明的变量是
清出于兰
2020/10/26
7470
JavaScript——变量作用域
1. 变量作用域的介绍 变量作用域就是变量的使用范围,变量分为: 局部变量 全局变量 2. 局部变量 局部变量就是在函数内使用的变量,只能在函数内部使用。 <script type="text/javascript"> function myalert() { // 定义局部变量 var b = 23; alert(b); } myalert(); // 弹出23 alert(b); // 函数外使用出错 </scri
落雨
2022/04/07
29.7K0
Python变量作用域
今天我们要说的是:变量的作用域 什么是作用域呢? 作用域就是某一个事件或者物体在某种情况下产生的特定的作用或效果(画外音:能不能说人话?) 好吧,那常老师来举个例子(不举栗子了,太累) 比如你,你是谁? 这个问题问的太TM好了,好吧,你先来试图回答一下你是谁? 可能有很多答案,没错,你只要能列举出两个以上不同的合理答案,就说明你已经理解并掌握作用域的概念了 常老师来举几个例子: 1.我在我父母面前我就是儿子 2.我在我爷爷面前我就是孙子 3.我在我侄子面前我就是叔叔 4.我在我弟弟的孩子面前,我就是TA大爷
企鹅号小编
2018/01/09
9710
Python变量作用域
GoLang 变量作用域
GoLang 变量作用域 在 Golang 中,变量作用域分为: 本地局部变量 全局变量 参数变量 本地局部变量 定义:在函数或者在语义块(if/for等)中定义的变量 生效范围:定义在函数里面则在整个函数范围有效; 定义在语义块,则在整个语义块生效 实例如下: //str 定义在函数内,因此它是一个本地局部变量 //str 仅仅在 Test函数内有效,出了这个函数无效 func Test(){ str := "This is a local var" } // str1 定义在语义块 for 里面
luxixing
2019/05/28
1.3K0

相似问题

AngularJS从指令中更新作用域变量

10

更新更改父作用域上的angularJs指令作用域变量

24

不随父作用域变量更改更新AngularJS指令

22

AngularJS作用域未在指令中更新

12

AngularJS指令:更新隔离作用域

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文