AngularJS - 为什么我无法实时更新我的数组长度?(AngularJS - Why can't I get my array length updated in real-time?)
我正在使用
AngularJS
和Firebase
填充一个简单的待办事项笔记应用程序。 (而且我也是AngularJS的新手!)To-do笔记将保存在$scope.todos
变量中。 这是我的app.js
代码:myApp.controller('mainController', function($scope, $firebase) { // connect to firebase var ref = new Firebase("https://XXX.firebaseio.com/todos"); var fb = $firebase(ref); $scope.todos = []; // sync as object var syncObject = fb.$asObject(); // 3-way data binding syncObject.$bindTo($scope, "todos"); $scope.addNewTodo = function(){ var todoTitle = $(".add-todo").val(); var createdAt = new Date(); var element = { title: todoTitle, timestamp: createdAt, done: false }; fb.$push(element); $(".add-todo").val(""); }; });
这是我的
index.html
代码:<div class="container" ng-app="todoApp" ng-controller="mainController"> <div class="row"> <div class="col-md-6"> <div class="todolist not-done"> <h1>Todos</h1> <input type="text" class="form-control add-todo" placeholder="Add todo" ng-enter="addNewTodo()"> <button id="checkAll" class="btn btn-success">Mark all as done</button> <hr/> <ul id="sortable" class="list-unstyled" ng-repeat="todo in todos"> <li class="ui-state-default"> <div class="checkbox"> <label> <input type="checkbox" value=""/> {{ todo.title }}</label> </div> </li> </ul> <div class="todo-footer"> <strong><span class="count-todos">{{ todos.length }}</span></strong> Items Left </div> </div> </div> </div> </div>
我添加了
{{todos.length}}
来计算$scope.todos
数组中剩余的todos元素。 但是当我添加或删除$scope.todos
数组中的元素时,它不会自动更新。 这对我来说有点奇怪,因为它与MeteorJS
完全不同,如果我做同样的事情。I'm populating a simple To-do notes application using
AngularJS
andFirebase
. (And I'm new to AngularJS, too !) The To-do notes will be saved in$scope.todos
variable. This is myapp.js
code:myApp.controller('mainController', function($scope, $firebase) { // connect to firebase var ref = new Firebase("https://XXX.firebaseio.com/todos"); var fb = $firebase(ref); $scope.todos = []; // sync as object var syncObject = fb.$asObject(); // 3-way data binding syncObject.$bindTo($scope, "todos"); $scope.addNewTodo = function(){ var todoTitle = $(".add-todo").val(); var createdAt = new Date(); var element = { title: todoTitle, timestamp: createdAt, done: false }; fb.$push(element); $(".add-todo").val(""); }; });
And this is my
index.html
code:<div class="container" ng-app="todoApp" ng-controller="mainController"> <div class="row"> <div class="col-md-6"> <div class="todolist not-done"> <h1>Todos</h1> <input type="text" class="form-control add-todo" placeholder="Add todo" ng-enter="addNewTodo()"> <button id="checkAll" class="btn btn-success">Mark all as done</button> <hr/> <ul id="sortable" class="list-unstyled" ng-repeat="todo in todos"> <li class="ui-state-default"> <div class="checkbox"> <label> <input type="checkbox" value=""/> {{ todo.title }}</label> </div> </li> </ul> <div class="todo-footer"> <strong><span class="count-todos">{{ todos.length }}</span></strong> Items Left </div> </div> </div> </div> </div>
I added
{{todos.length}}
for counting the remaining todos elements in the$scope.todos
array. But it isn't automatically updated when I add or remove elements from the$scope.todos
array. This is a bit strange for me cause it's quite different than whatMeteorJS
does, if I do the same thing.
原文:https://stackoverflow.com/questions/27665912
最满意答案
试试这个 - 那是你以后的样子吗?
%let mydt = 06/30/1999; %let mydt2 = %sysfunc(inputn(&mydt,mmddyy10.)); %put &mydt2;
Try this - is that what you were after?
%let mydt = 06/30/1999; %let mydt2 = %sysfunc(inputn(&mydt,mmddyy10.)); %put &mydt2;
相关问答
更多-
要准确匹配默认日期时间结构的SAS输出,您需要使用as.POSIXct,如注释中所述,另外使用tz = UTC参数: sasDateTimes <- c(1706835972, 1716835972, 1726835972, 1736835972, 1746835972, 1756835972, 1766835972, 1776835972, 1786835972, 1796835972, 1806835972, 1816835972, 1826835972, 1836835972, 184683597 ...
-
SAS无法识别日期格式(SAS not recognizing date format)[2023-01-15]
您可能需要使用不同的信息来读取字符日期,以便SAS可以将它们解释为数字(因为SAS中的日期实际上是数字值),然后将它们格式化为MMYYS. 。 这已经过测试,适用于我: DATA temps; FORMAT newdate MMYYS.; SET indata; newdate = INPUT(COMPRESS('01/'||date),DDMMYY10.); RUN; You may have to use a different informat to read in the character da ... -
SAS中的日期值(正确保存时)存储为整数,即自1960年1月1日以来的整数天数。 所以今天是20230 。 然后格式告诉SAS打印整齐时应该是什么样子; 和信息告诉SAS如何将整齐打印的日期翻译成这个数字。 在你的例子中, mmddyy10. 是一个信息告诉SAS采取05/22/2015并将其转为20230 。 欢迎您与DATE9进行比较。 格式化为此日期值:因为两者都将存储为整数。 它们在屏幕上的外观与人类相关,但整数与SAS相关。 Date values in SAS (when saved corre ...
-
SAS SQL日期格式(SAS SQL Date formatting)[2022-12-05]
format会影响SAS显示变量值的方式。 它不会影响实际值本身。 因此,假设变量CREATION_DATE是日期时间值,只需为其指定DATETIME20格式即可。 显示是你想要的: proc sql; create table data.test as select ID, CREATION_DATE format=datetime20. from connection to odbc ( select ID, DATE AS CREATION_DATE from m ... -
也许直接的CDate方法对您CDate ,因为您的系统和Excel语言似乎是英语。 对我来说,它不起作用,因为我的系统不知道英文月份名称。 所以我必须用数字真正地替换它们: Sub MonthReplace() Dim i As Long Dim monthArray As Variant Dim c As Range Dim strDate As String monthArray = Array("January", "February", "March", ...
-
SAS文本日期格式(SAS text to date format)[2023-08-30]
试试这个 - 那是你以后的样子吗? %let mydt = 06/30/1999; %let mydt2 = %sysfunc(inputn(&mydt,mmddyy10.)); %put &mydt2; Try this - is that what you were after? %let mydt = 06/30/1999; %let mydt2 = %sysfunc(inputn(&mydt,mmddyy10.)); %put &mydt2; -
SAS特定日期格式(SAS Specific Date format)[2022-04-12]
使用input()函数和适当的信息: datevariable=input(textvariable,ddmmyy10.); Use the input() function with an appropriate informat: datevariable=input(textvariable,ddmmyy10.); -
SAS - 自定义日期格式(SAS - custom date format)[2022-10-21]
我不相信你可以使用Picture创建INformats; 只有格式。 (INformat =获取字符串并转换为(在本例中)日期值,格式=获取日期值并转换为字符串。) 幸运的是,ANYDTDTM。 似乎很好地读了这个。 (我改为上午11点以确保时间部分没问题。) data test; input @1 x ANYDTDTM19.; put x= DATETIME17.; datalines; Mar 20 2013 11:00AM ;;;; run; I do not believe you can cre ... -
SAS导出日期格式(SAS Export date format)[2023-01-05]
使用%sysfunc函数很方便: %LET P_YEAR = %SYSFUNC(YEAR(%SYSFUNC(TODAY())+29)); %LET P_MONTH = %SYSFUNC(MONTH(%SYSFUNC(TODAY())+29)); %PUT &P_YEAR &P_MONTH; 结果是: 2016 2 编辑 (请先尝试自己解决,但这里有一个完整的解决方案...) data _null_; target = today() + 29; format target YYMMDDS10.; ... -
SAS日期格式(SAS date formatting)[2023-09-20]
在使用input时,不需要使用put语句将值转换为numeric。 input的目标是获取字符输入并将其转换为数字值,以便SAS进行数学运算。 我多么记得它: 在 put中:将输入值转换为数值 Put :Out 将数值作为字符值 您可以尝试使用anydtdte.更简单的解决方案anydtdte. 信息 。 它能够读取以下任何信息: 日期 约会时间 DDMMYY JULIAN MDYAMPM MMDDYY MMxYY MONYY 时间 YMDDTTM YYMMDD YYQ YYxMM 月日年 例如: %let ...