我想将我的身份验证代码存储在 localstorage 中,ionic2提供了它自己的存储模块ionic/storage
storage.set(key,value),
storage.get(key).then(value=> {
console.log(value);
})
Run Code Online (Sandbox Code Playgroud)
但我也尝试过这样存储,当我在浏览器中测试应用程序时它可以工作。
localStorage.setItem(key, value);
localStorage.getItem('key');
Run Code Online (Sandbox Code Playgroud)
谁能解释一下使用本地存储的更好方法是什么?
我们的网络应用程序有这些材料图标:https : //fonts.googleapis.com/icon?family= Material+ Icons
我们目前正在 Ionic Framework 3 中开发移动版本,我们希望使用相同的图标,但其中一些未包含在框架中。
我怎样才能添加它们?理想情况下,我想像其他 Ionic 图标一样使用它们:
<ion-tab [root]="tab1Root" tabTitle="Something" tabIcon="some-material-icon"></ion-tab>
Run Code Online (Sandbox Code Playgroud)
谢谢。
我将使用 ionic 3 应用程序实现 razorpay 一切正常,我得到了 pay_id 的成功回调,但之后没有任何事情发生,例如重定向到其他页面或路由或任何其他活动或调用函数等。
我参考以下链接,
https://github.com/razorpay/razorpay-cordova-sample-app/tree/master/rzp-ionic2-example
这是我的代码,
var options = {
description: 'Credits towards consultation',
image: 'https://i.imgur.com/3g7nmJC.png',
currency: 'INR',
key: 'rzp_test_1DP5mmOlF5G5ag',
amount: '5000',
name: 'foo',
prefill: {
email: 'pranav@razorpay.com',
contact: '8879524924',
name: 'Pranav Gupta'
},
theme: {
color: '#F37254'
},
modal: {
ondismiss: function() {
alert('dismissed')
}
}
};
var successCallback = function(payment_id) {
alert('payment_id: ' + payment_id);
this.navCtrl.push("ThankyouPage",{
status: this.status
});
};
var cancelCallback = function(error) {
alert(error.description + ' (Error ' + error.code + …Run Code Online (Sandbox Code Playgroud) 使用 ionic 3 我从 wordpress api 获取了一些数据,然后在应用程序 UI 上显示相同的数据。除了内容中包含的 HTML 标签外,一切似乎都正常。html 标签也被打印出来。我参考了一些建议使用以下代码的资源:-
`var app = angular.module('myHDApp', []);
app.filter('removeHTMLTags', function() {
return function(text) {
return text ? String(text).replace(/<[^>]+>/gm, '') : '';
};
});
Run Code Online (Sandbox Code Playgroud)
我已经在我的 .ts 代码中实现了上述功能,但它似乎对我不起作用,因为我仍然在内容中获得 HTML 标签。
我的打字稿文件中有几个对象数组。
我想同时遍历这些数组并在 html 文件中显示它们的内容。以下是内容:
<ion-item>
{{array1[i]}} {{array2[i]}} {{array3[i]}}
</ion-item>
Run Code Online (Sandbox Code Playgroud)
幸运的是,数组总是相同的大小。现在我想在 ion-item 之后做一个 for 循环(类似这样):
<ion-item *ngFor="let i in array1">
{{array1[i]}} {{array2[i]}} {{array3[i]}}
</ion-item>
Run Code Online (Sandbox Code Playgroud)
但是这样做会给我一个错误:“无法绑定 'ngForIn' 因为它不是 'ion-item' 的已知属性。现在我找到了以下解决方法,但它看起来很丑陋。
<ion-item *ngFor="let counter of array1; let i = index">
{{array1[i]}} {{array2[i]}} {{array3[i]}}
</ion-item>
Run Code Online (Sandbox Code Playgroud)
关于如何更有效/更漂亮地执行此操作的任何建议将不胜感激:)
谢谢!
我正在尝试使用firebase来获取分析事件,但我得到的只是session_start事件。我正在使用Firebase 离子插件。
这是我的代码:
constructor(public navCtrl: NavController, private nav: NavController,
private firebaseAnalytics: FirebaseAnalytics) {
this.firebaseAnalytics.setEnabled(true);
this.firebaseAnalytics.logEvent('home_page_viewed', {page: "dashboard"})
.then((res: any) => console.log(res))
.catch((error: any) => console.error(error));
}
Run Code Online (Sandbox Code Playgroud)
因此,我希望在Firebase控制台中看到一个名为“ home_page_viewed”的事件,但我没有看到此事件。我所看到的只是session_start事件。
有人知道我该怎么办?
当我想在离子1中隐藏或显示div时,我曾经使用过ngshow.
我正在使用离子3,如果indexCount == 0,我试图让按钮什么也不做(没有点击事件).
我现在有......
<div ng-if=" indexCount == 0">
<button ion-button class="previous"> Previous </button>
<div ng-if=" indexCount != 0">
<button ion-button class="next" (click)="previousButtonClick"> Next
</button>
Run Code Online (Sandbox Code Playgroud) 我想要在ionic3中捕获列表组件的滚动事件,如下例所示:
<ion-content on-scroll = "scrolling()" on-scroll-complete = "scrollComplete()">
<ion-list>
<ion-item ng-repeat="item in items"
item="item"
href="#/item/{{item.id}}">
Item {{ item.id }}
</ion-item>
</ion-list>
</ion-content>
Run Code Online (Sandbox Code Playgroud)
https://codepen.io/etipirev/pen/aNYNpy?editors=1111
似乎它在离子1中起作用,但在离子3中不起作用?我尚未在离子文档中找到任何事件描述。是否可以捕获ionic 3中列表项的滚动?
离子新手在这里。我正在使用Ionic 3和BLE插件。该插件的工作方式是,您开始扫描Bluetooth设备,并收到每个新的扫描结果的通知,然后在完成后取消扫描。我只是想在ion-list每次接收到新的扫描结果时将元素附加到。
这个Cordova插件使用了回音,这些回音将离子包装到Observables和Promises中。该方法startScan返回Observable<any>,并且“ any”是一个对象,其中包含有关检测到的BLE设备的信息。
我首先尝试将此可观察对象直接插入ngFor中:
<ion-list>
<button ion-item *ngFor="let result of results | async">
{{ result | json}}
</button>
</ion-list>
Run Code Online (Sandbox Code Playgroud)
调用开始扫描返回了可观察到的结果:
this.results = this.ble.startScan([]);
this.results.subscribe(...);
Run Code Online (Sandbox Code Playgroud)
但是我听说这ngFor仅适用于数组,因此它需要一个Observable<Array>而不是单个对象的可观察对象。因此,我放弃了Observable并改为使用数组。异步管道不再起作用,所以我不得不修改列表:
<ion-list>
<button ion-item *ngFor="let result of results">
{{ result | json}}
</button>
</ion-list>
Run Code Online (Sandbox Code Playgroud)
然后将的类型更改results为Array<any>。现在,扫描代码如下所示:
this.ble.startScan([])
.subscribe(device => {
this.results.push(device); //Does not work
});
Run Code Online (Sandbox Code Playgroud)
但是,直到屏幕上的某些其他组件发生更改,列表才会显示。显然,Angular不会检测到Array元素内部的更改,它仅检测到对象内引用和属性的更改。因此,我尝试了这种无效的技巧:
this.ble.startScan([])
.subscribe(device => {
this.results = this.results.concat([device]); //Does not work
});
Run Code Online (Sandbox Code Playgroud)
但是,即使那样也没有用。然后,经过几个小时的阅读,我知道了这个所谓的东西ChangeDetector应该可以解决问题。我尝试了OnPush检测策略,并且默认设置也无效:
this.ble.startScan([])
.subscribe(device …Run Code Online (Sandbox Code Playgroud) 我有一个想使用touchId功能的ionic 3应用程序。
后端API正在.net中开发。
对于我的身份验证模型,我认为在用户输入登录名和密码并由服务器进行身份验证之后,它会发回JWT令牌。
我可以将令牌存储在本地,然后每次用户使用touchId时,它都会检查令牌是否存储在本地,然后将该令牌与服务器进行匹配并允许访问。
这是怎么运作的?
ionic3 ×10
angular ×6
ionic2 ×5
typescript ×3
javascript ×2
angularfire ×1
angularfire2 ×1
cordova ×1
firebase ×1
for-loop ×1
jwt ×1
ngfor ×1