當前位置:首頁 » 存儲配置 » angularjs存儲數據

angularjs存儲數據

發布時間: 2022-06-12 01:14:01

❶ 如何解決AngularJs在IE下取數據總是緩存的問題

如果用AngularJs在IE下發出GET請求從後台服務取完Json數據再綁定到頁面上顯示的話,你可能會發現就算數據更新了,IE還是會顯示原來的結果。實際上這時候IE的確是緩存了hashtag,沒有再次去做Http GET請求最新的數據。
最直接的辦法是在後台擼掉OutputCache,但這種做法並不推薦,需要改每一處被Angular調用的地方,代價太大。這種問題應該在前端解決最好。研究了一會兒總結了最有效的解決方法,並不需要改後台代碼了。
在你的app config里擼一個$httpProvider進去,比如像我這樣,和路由可以配在一起,當然分開配也沒問題。
var config = ["$routeProvider", "$httpProvider", function ($routeProvider, $httpProvider) {
// Initialize get if not there
if (!$httpProvider.defaults.headers.get) {
$httpProvider.defaults.headers.get = {};
}
// Enables Request.IsAjaxRequest() in ASP.NET MVC
$httpProvider.defaults.headers.common["X-Requested-With"] = 'XMLHttpRequest';
// Disable IE ajax request caching
$httpProvider.defaults.headers.get['Cache-Control'] = 'no-cache';
$httpProvider.defaults.headers.get['Pragma'] = 'no-cache';
$routeProvider.when("/", { templateUrl: "Manage/dashboard/index.cshtml" })
.when("/dashboard", { templateUrl: "Manage/dashboard/index.cshtml" })
.when("/dashboard/serverinfo", { templateUrl: "Manage/dashboard/serverinfo.cshtml" })
.when("/dashboard/emaillogs", { templateUrl: "Manage/dashboard/emaillogs.cshtml" })
// other code....
.otherwise({ redirectTo: "/" });
}];
app.config(config);

最關鍵的就是最後的禁用IE對ajax的緩存
$httpProvider.defaults.headers.get['Cache-Control'] = 'no-cache';
$httpProvider.defaults.headers.get['Pragma'] = 'no-cache';

如果你想這樣寫,是會爆的:
$httpProvider.defaults.headers.get['If-Modified-Since'] = '0';

這樣會導致include指令載入的partial view擼不出來,所以不要作死了

❷ angularjs ng-repeat 渲染完成後數據變化,可以再次渲染嗎

前言 大家都知道對於處理小數量,ng-repeat是非常有用的,但是如果需要處理非常大的數量集,還是採用自定義的方法更好一些。特別是數據大多都是靜態的或已預存儲好的,這個時候應避免使用ng-repeat指令。 ng-repeat中的表達式和 $watch Angular中的表達式都會創建$watch 的Scope 函數。用於監聽模型變化,當你的模型部分發生變化時它會通知你。在ng-repeat指令中,如果某行數據有15列數據都綁定了表達式,如果數據有1000多行的話,那麼$watch就又獎金15000個,這性能簡直難以想像。 所以當我們想要實現ng-repeat的功能又想兼備性能,那隻能另找一種方法了。 替換ng-repeat的方法 如果內容是靜態的,我們不需要兩種方式的綁定,只需要執行一次賦值語句{{::value}}就可以。如果anguluarJS是1.3以下的舊版本,是不支持的一次性綁定語法的。那麼最好的方法就是自定義指令,換言之,靜態數據可以使用一些簡單的方法來格式化。 實現步驟 1、首先創建無序列表,用於保存動態綁定的內容。 創建UL標簽作為容器用於顯示列表 我們選擇動態載入List中的數據,首先添加div標簽,並命名為"repeater-alternative"用於渲染流中。 <div> <ul> <div repeater-alternative></div> </ul> </div> 2、定義List 數據: //示例數據 var studentsList = [ { FirstName: "Raj, LastName : "B", Country : "India", BirthDate: "01/01/1990" }, { FirstName: "Kumar, LastName : "S", Country : "India", BirthDate: "01/01/1990" }, .................. .................. .................. .................. ]; $scope.collectionObject = studentsList; //分配給$scope函數 3、實際List內容 主要目的適用於重復集合對象,並顯示到列表中,所以需要制定訪問循環的邏輯,並按照需求來格式化字元串。 var tableRow = ""; angular.forEach($scope.collectionObject, function (item) { tableRow = tableRow + ['<li>', '<div class="col-md-1">' + item.FirstName + '</div> ', '<div class="col-md-1 ">' + item.LastName + '</div> ', '<div class="col-md-1 ">' + item.Country+ '</div> ', '<div class="col-md-1 ">' + item.Id + '</div> ', '<div class="col-md-1 ">' + $filter('date')(item.BirthDate, 'dd-MMM-yyyy') + '</div> ', '</li>'].join(''); }); 4、List格式化邏輯 一旦collectionObject的值已被賦給其他變數,就需要定義顯示數據的表格。 5、如何獲取分配CollectionObject的時間 Angular會監控$scope變數值得改變,一旦值被修改,則$watch將被處罰,所以需要將CollectionObject賦值邏輯放到$scope變數的$watch中。 代碼如下: $scope.$watch($scope.object, function (oldValue, newValue) { }) 即,當我們執行賦值語句是,Angular會處理這個事件,並格式化List的內容。 $scope.$watch('collectionObject', function (oldValue, newValue) { var tableRow = ""; angular.forEach($scope.collectionObject, function (item) { tableRow = tableRow + ['<li>', '<div class="col-md-1">' + item.FirstName + '</div> ', '<div class="col-md-1 ">' + item.LastName + '</div> ', '<div class="col-md-1 ">' + item.State + '</div> ', '<div class="col-md-1 ">' + item.Id + '</div> ', '<div class="col-md-1 ">' + $filter('date')(item.BirthDate, 'dd-MMM-yyyy') + '</div> ', '</li>'].join(''); }); }) 接下來就是將內容渲染到表格控制項中,也就是HTML<DIV>repeater-alternative標簽中。 首先必須理解Angular的Directive機制,簡單而言,就是我們來指示Angular,當指定的變數被發現,就開始執行後台操作。 var userDirectives = angular.mole([]); userDirectives.directive('DOMElementFound', function () { return { replace: true, link: function ($scope, $elem, attrs) { //後台處理操作 } } }); 我們會通知Angular,當發現"repeater-alternative" 元素,則將以下數據渲染到列錶行中。 代碼如下: var userDirectives = angular.mole([]); userDirectives.directive('repeaterAlternative', function () { return { replace : true, link: function ($scope, $elem, attrs) { $scope.$watch('collectionObject', function (oldValue, newValue) { var tableRow = ""; angular.forEach($scope.collectionObject, function (item) { tableRow = tableRow + ['<li>', '<div class="col-md-1">' + item.FirstName + '</div> ', '<div class="col-md-1 ">' + item.LastName + '</div> ', '<div class="col-md-1 ">' + item.State + '</div> ', '<div class="col-md-1 ">' + item.Id + '</div> ', '<div class="col-md-1 ">' + $filter('date')(item.BirthDate, 'dd-MMM-yyyy') + '</div> ', '</li>'].join(''); }); //If IE is your primary browser, innerHTML is recommended to increase the performance $elem.context.innerHTML = tableRow; //If IE is not your primary browser, just appending the content to the element is enough . //$elem.append(tableRow); }); } } }); 總結 在本文中,主要模擬了ng-repeat的工作方式和邏輯,但只限於靜態內容,所以輸出結果與調用ng-repeat結果相同,但是渲染更快,因為該方法只有一種數據綁定方式和少量的$watch。以上就是這篇文章的全部內容,希望本文的內容能對大家的學習或者工作有所幫助,如果有疑問大家可以留言交流。

❸ angularjs localstorage存在哪

angularjs localstorage存在哪
PowerBuilder是美國著名的資料庫應用開發工具生產廠商PowerSoft推出的成功產品,其第一版於1991年6月正式投入市場。它是完全按照客戶/伺服器體系結構研製設計的,採用面向對象技術,圖形化的應用開發環境,是資料庫的前端開發工具。

PowerBuilder的特點

它支持應用系統同時訪問多種資料庫,其中既包括Oracel,Sybase之類的大型資料庫,又包括FOXPRO之類支持ODBC介面的小型資料庫,PowerBuilder是完全可視化的資料庫開發工具,它提供了大量的控制項,大大加快了項目的開發速度,也使開發者更容易掌握資料庫的開發。

❹ 使用AngularJS怎樣正確顯示時間格式的數據

第一步,時間格式是以斜杠的形式出現的。先選中要設置的單元格,然後右鍵,選擇「設置單元格格式」。

第二步,選好之後會出現一個框框,在數字下面有個分類,找到日期,在右邊類型裡面查看下有沒有以XXXX-XX我插入mysql的時間格式是:2010-01-12
該欄位是date類型,可是從資料庫查詢出來顯示在頁面的時候卻是
2010-01-12
00:00:00.0,我不想要00:00:00.0,而且直接使用${}來讀取session中保存的student實體,怎麼才能去掉呢,
為什麼會出現00:00:00.0呢?原因在哪裡?ssh框架的項目取出時間的代碼是自己寫的嗎?
如果是
看看取出時間是不HH代表兩位的小時數字(00-23),MM代表分鍾數字(00-59)。H是英文的HOUR小時的意思,M是MINUTE分鍾的意思。

❺ angularjs公共模塊的數據怎麼操作

angularjs的指令編寫的時候,我們可以在controller中去注入當前使用該directive的$scope;
directive('footCommen', function() {
return {
restrict: 'AE',
controller:function($scope){
//這里的 $scope注入的是當前使用這個directive的$scope對象

//當然這里也可以注入其他的,比如$rootScope/$window等

},
replace: false
}

});

❻ angularjs是一個前端框架,為什麼要有sql語句操作資料庫那

一、angularjs是一個javascript框架。通過script腳本引入,他是一個用Javascript編寫的庫。angularjs通過指令擴展了HTML,通過表達式綁定數據到HTML中。AngularJS主要考慮的是構建CRUD(增刪改查)應用。
優點:
1. 模板功能強大豐富,並且是聲明式的,自帶了豐富的Angular指令;
2. 是一個比較完善的前端MVC框架,包含模板,數據雙向綁定,路由,模塊化,服務,過濾器,依賴注入等所有功能;
3. 自定義Directive(指令),比jQuery插件還靈活,但是需要深入了解Directive的一些特性,簡單的封裝容易,復雜一點官方沒有提供詳細的介紹文檔,可以通過閱讀源代碼來找到某些我們需要的東西,如:在directive使用 $parse;
4. ng模塊化比較大膽的引入了Java的一些東西(依賴注入),能夠很容易的寫出可復用的代碼,對於敏捷開發的團隊來說非常有幫助。
缺點:
1. 驗證功能錯誤信息顯示比較薄弱,需要寫很多模板標簽,沒有jQuery Validate方便,所以可以自己封裝了驗證的錯誤信息提示;
2. ngView只能有一個,不能嵌套多個視圖,雖然有angular-ui/ui-router · GitHub 解決,但是貌似ui-router 對於URL的控制不是很靈活,必須是嵌套式的;
3. 對於特別復雜的應用場景,貌似性能有點問題,特別是在Windows下使用chrome瀏覽器,不知道是內存泄漏了還是什麼其他問題,沒有找到好的解決方案,奇怪的是在IE10下反而很快;
4. 這次從1.0.X升級到1.2.X,貌似有比較大的調整,沒有完美兼容低版本,升級之後可能會導致一個兼容性的BUG,具體詳細信息參考官方文檔AngularJS ,對應的中文版本:Angular 1.0到1.2 遷移指南
5. ng提倡在控制器裡面不要有操作DOM的代碼,對於一些jQuery 插件的使用,如果想不破壞代碼的整潔性,需要寫一些directive去封裝插件,但是現在有很多插件的版本已經支持Angular了,如:jQuery File Upload Demo
6. Angular 太笨重了,沒有讓用戶選擇一個輕量級的版本,當然1.2.X後,Angular也在做一些更改,比如把route,animate等模塊獨立出去,讓用戶自己去選擇。

❼ AngularJS的數據雙向綁定是怎麼實現的

AngularJS誕生於2009年,由MiskoHevery等人創建,後為Google所收購。是一款優秀的前端JS框架,已經被用於Google的多款產品當中。AngularJS有著諸多特性,最為核心的是:MVVM、模塊化、自動化雙向數據綁定、語義化標簽、依賴注入。


  1. ng-model表示數據雙向綁定,把js中對象的屬性和html頁面上顯示的值進行綁定;同時也是把你新賦予的值和對象的屬性進行綁定;

    總結:angular的雙向數據綁定,個人理解是,通過model建立數據模型,那麼視圖上的數據就會對應存儲在angular程序里,視圖上的數據變化會同步到model,model的數據改變也會同步到視圖。

    ❽ angularjs window.localstorage存儲的數據任何controller都可以讀取嗎

    ocalStorage存儲方法 localStorage.name = localStorage["name"]='vanida';localStorage.setItem("name","vanida");//這三種設置值方式是一樣的; localStorage獲取值方法 var name = localStorage["name"] = localStorage.name= localStorage...

    ❾ angularjs中怎麼給表格點擊添加數據

    • 首先是html頁面的編寫:

    • <!doctypehtml>
      <htmlng-app="myMole">
      <head>
      <metacharset="utf-8">
      <title>學生信息管理</title>
      //需要用到的一些庫,要載入的
      <scriptsrc="bower_components/angular/angular.js"></script>
      <scriptsrc="bower_components/ng-table/dist/ng-table.js"></script>
      <scriptsrc="bower_components/ng-table-export/ng-table-export.js"></script>
      <linkrel="stylesheet"type="text/css"/>
      <linkrel="stylesheet"type="text/css"/>
      <linkrel="stylesheet"type="text/css">
      <scriptsrc="mole/scripts/controllers/Form.js"></script>
      </head>
      <body>
      <divui-view></div>
      <divng-controller="FormController">
      <h3>學生信息列表</h3>
      <br>
      <div>
      搜索:<inputtype="text"ng-model="titleFilter"placeholder="輸入關鍵字">//加上<trng-repeat="studentinstudents|filter:titleFilter">實現了表格內容的檢索。
      </div>
      <br>
      <tableng-table="tableParams">
      <trng-repeat="studentinstudents|filter:titleFilter">//遍歷每一個對象
      <tdtitle="'Name'">
      <spanng-if="!student.$edit">{{student.Name}}</span>
      <divng-if="student.$edit"><inputtype="text"ng-model="student.Name"></div>
      </td>
      <tdtitle="'Id'">
      <spanng-if="!student.$edit">{{student.Id}}</span>
      <divng-if="student.$edit"><inputtype="text"ng-model="student.Id"></div>
      </td>
      <tdtitle="'Grade'">
      <spanng-if="!student.$edit">{{student.Grade}}</span>
      <divng-if="student.$edit"><inputtype="text"ng-model="student.Grade"></div>
      </td>
      <tdtitle="'Actions'"width="200">
      <ang-if="!student.$edit"ng-click="student.$edit=true">Edit</a>
      <ang-if="student.$edit"ng-click="student.$edit=false">Save</a>
      <ang-click="deleteStudent(obj)"ng-if="student.$edit">Delete</a>
      <!--<ang-click="addStudent()"ng-if="student.$edit">Add</a>-->
      </td>
      </tr>
      </table>
      <div>
      <inputtype="text"ng-model="newName"placeholder="inputName"required/>
      <inputtype="text"ng-model="newId"placeholder="inputId"required/>
      <inputtype="text"ng-model="newGrade"placeholder="inputGrade"required/>
      <inputtype="button"ng-click="addStudent()"value="Add"/>
      </div>
      </div>
      </body>
      </html>
    • 接下來是js代碼部分
    • varmyMole=angular.mole('myMole',['ngTable']).
      controller('FormController',function($scope,ngTableParams,$sce){
      $scope.students=[
      {Name:'小李',Id:'201401201',Grade:'計算機技術'},
      {Name:'李磊',Id:'201401202',Grade:'計算機技術'},
      {Name:'夏津',Id:'201401203',Grade:'計算機技術'},
      {Name:'杭州',Id:'201401204',Grade:'計算機技術'}
      ];
      $scope.addStudent=function(){//添加學生函數
      $scope.students.push({Name:$scope.newName,Id:$scope.newId,Grade:$scope.newGrade});
      $scope.newName='';
      $scope.newId='';
      $scope.newGrade='';
      };
      $scope.deleteStudent=function(student){//刪除一行的內容
      $scope.students.splice($scope.students.indexOf(student),1);
      };
      });

    ❿ angular6.0 如何使用js

    • 下載安裝。官方網站:https://docs.angularjs.org/api

      下載地址: https://angularjs.org/

熱點內容
網易雲音樂腳本 發布:2025-01-11 02:22:56 瀏覽:608
java軟體開發培訓怎麼樣 發布:2025-01-11 02:17:53 瀏覽:193
md5加密優點 發布:2025-01-11 02:12:52 瀏覽:435
讀取文件夾所有文件名 發布:2025-01-11 02:12:50 瀏覽:681
雲伺服器華為 發布:2025-01-11 02:11:07 瀏覽:162
路由器重置了wifi默認密碼是什麼 發布:2025-01-11 02:03:55 瀏覽:659
2019速騰買什麼配置好 發布:2025-01-11 01:35:07 瀏覽:831
博越存儲異常 發布:2025-01-11 01:24:31 瀏覽:918
我的世界還原中國伺服器版圖 發布:2025-01-11 01:18:45 瀏覽:384
pythonopenasfile 發布:2025-01-11 01:17:06 瀏覽:973