正如标题所说:)
我一直在等待Wrox发布"专业版Silverlight 2.0"已经很长时间了,但是已经推迟了将近一年,我希望有一个带银光的游戏.
忽略silverlight.net网站,有没有人知道任何好的初学者教程,专注于Visual Studio中的编码而不是Blend?
乔恩
我目前正在学习Node.JS并需要实现一个数据库.所有Node书籍似乎都认为MongoDB是最好的解决方案,但我似乎无法理解像Mongo和Couch这样的NoSql数据库,我是一个MS SQL Server人!
所以,我知道您可以将结构化数据保存为记录(JSON),但我不确定您如何使用以下(简化)表格对典型电子商务应用程序进行建模...
customers (id, name, address)
orders (id, customerID, orderDate)
orderItems (id, orderID, productID)
products (id, title, description, image)
Run Code Online (Sandbox Code Playgroud)
所以,通常我会写这样的查询(但显然更好地优化)....
SELECT Customers.name, Products.title
FROM (orders INNER JOIN customers ON orders.customerID = customers.id)
INNER JOIN orderItems ON orderItems.orderID = orders.id
INNER JOIN products ON orderItems.productID = products.id
Run Code Online (Sandbox Code Playgroud)
如果我能看到一个如何在NoSQL数据库中工作的例子,那么我可能会开始"得到它".
或者,我最好还是坚持使用MSSQL Server或MySql,两者都与Node兼容?
我正在使用Visual Studio Express 2013 for Web,我有一个像这样的文件夹结构.
domainname.com/src
domainname.com/src/templates
domainname.com/src/templates/default.aspx
domainname.com/dist
domainname.com/dist/default.aspx
Run Code Online (Sandbox Code Playgroud)
我的src目录下还有其他文件夹(images/sass等),当我构建时,我正在使用grunt将它们全部复制/缩小到dist文件夹.我的想法是,当我的同事开始使用.net时,他们会在构建期间将所有内容复制到/ dist.所以编译后的东西最终会出现在/ dist/bin中
我这样做是因为我可以将所有原始的未缩小的源文件和资源与我的文件完全分开.这似乎是一件明智的事情.
问题是,如果我使用Visual Studio(而不是Sublime),那么我从根目录下文件>打开网站.当我然后"在浏览器中查看"时,它使用以下URL.
http://localhost:58218/dist/Default.aspx
Run Code Online (Sandbox Code Playgroud)
...而且我对images/css/js的链接都不再起作用,因为所有链接都是相对的.
我想要做的是能够在VS2013中打开整个文件夹,包括根文件夹和src文件夹等,所以我可以编辑源代码,然后一旦它被构建/哼唱我想让IIS运行/ dist网站就好像它是根.
如果我打开/ dist文件作为文件夹并从那里运行然后一切正常,但显然我没有访问父文件夹和src文件夹来在网站上工作.
我希望我解释得那么好.
我正在使用Angular UI路由器(最新版本),我正在尝试更新搜索参数,而不是重新加载整个页面.我想$观看$ stateParams,但手表不适用于我的设置.
为清楚起见,当我使用transitionTo()时,我希望更新URL,我希望更新$ stateParams并在$ stateParams上触发$ watch,但我不希望整个控制器再次运行.reloadOnSearch:false会阻止控制器再次运行,但会产生副作用,即停止$ watch的触发,或者看起来如此.无论如何,这是我的代码
$ stateProvider配置:
$urlRouterProvider.otherwise("/search");
$stateProvider
.state('search', {
url: "/search?locationtext&method",
templateUrl: "templates/searchResults.tpl.html",
controller: 'SearchResultsCtrl as searchResults',
reloadOnSearch : false
})
Run Code Online (Sandbox Code Playgroud)
按钮点击处理程序
$state.transitionTo($state.current, {locationtext: 'london'}, {
location : true,
reload: false,
inherit: false,
notify: true
});
Run Code Online (Sandbox Code Playgroud)
$观看州参数:
$scope.stateParams = $stateParams;
$scope.$watchCollection('stateParams', function(){
$log.info("State params have been updated", $scope.stateParams);
});
Run Code Online (Sandbox Code Playgroud)
这就是发生的事情:
1)首次加载状态时,手表将触发并且状态控制器将记录到控制台.
2)当我点击按钮时,状态转换,网址显示#/ search?locationtext = london
3)此时手表不会被触发,尽管console.log显示$ state.params已更新
4)如果我点击浏览器后退按钮,则从URL中删除locationtext = london,但手表不再触发.
不知道我在这里做错了什么.我假设我已经正确设置了手表,否则在首次加载控制器时它不会触发?
任何想法将不胜感激.
编辑:
我还添加了以下内容
$rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams){
console.log("$stateChangeStart", $rootScope.stateParams);
});
Run Code Online (Sandbox Code Playgroud)
但事件甚至没有触发,尽管url更改并且$ state.params在transitionTo()之后不同; …
我正在尝试首次使用Adobe Animate CC的Snap.SVG插件,我将获得一个巨大的JSON文件作为输出.
我的文件很简单,我在画布中间有一个正方形,它从0度旋转到360度.有145帧,但只有2个关键帧,一个用于开始,一个用于结束.
问题似乎是导出器为动画的每一帧生成一个snap svg命令,而不是每个关键帧,所以我有一个18Kb的文件,包含超过1000行代码(一次使用jsonlint格式化),只是为了旋转一个简单的矩形通过360度.
我假设这不可能是正确的,我需要改变我在Adobe Animate CC中设置舞台的方式,或者我正在做其他错误的事情.
真的很感激任何帮助.
我正在尝试使用此简单代码在新选项卡中打开图像。
window.open(file.url);
Run Code Online (Sandbox Code Playgroud)
该文件是.jpg文件,而我的浏览器是Chrome。而不是在新选项卡中显示图像,它会触发下载窗口,并要求我将其下载到PC。
这是JavaScript问题吗?还是默认的Chrome设置?我已经搜索了一段时间,有人建议这可能是MIME类型问题,但我无法控制来自服务器的图像。
任何意见,将不胜感激。
这应该很容易,但对于我的生活,我无法解决它.
我想尝试测试一些javascript时区的东西,我需要把我的浏览器放到不同的时区,我在英国,所以它设置为GMT,在冬天恰好与UTC相同,所以确定是否差异已被占到是不可能的.
我想把我的电脑放到EST中,但我在Chrome选项中找不到任何东西,我尝试在Win10选项中更改我的时区,但浏览器忽略了它.重新启动Chrome没有帮助,即使我的电脑确定它在EST中并且我的Windows工具栏中的时钟已经改变.
我敢肯定我只是在这里做个白痴但有人可以帮忙吗?
我正在尝试编写快速中间件来检查授权标头中 JWT 的有效性。这看起来很简单,但我不希望它在所有路由上运行(例如不在登录/注册路由器上运行)。
因此,我想在路由器声明中指定路由应该需要有效的令牌。例如这样的东西
const controllers = require('../controllers');
module.exports = (app) => {
app.post('/auth/signup', controllers.auth.signup.post);
app.post('/auth/login', controllers.auth.login.post);
app.get('/teams', controllers.teams.get, {requiresToken:true});
};
Run Code Online (Sandbox Code Playgroud)
除此之外, .post 和 .get 不采用第三个参数,并且控制器仅采用 (req,res,next) 参数,因此我无法真正看到为每个路线传递起始数据的方法。我确信我错过了一些简单的东西
在 SO 上有几个关于此错误的问题,但没有来自类似情况的任何人,而且我找到的解决方案都没有工作,所以我将发布一个特定问题。
当在另一个组件中使用 Styled 组件并将 props 传递给它时,我是否必须创建一个新类型来将 props 传递给样式化组件,或者是否有某种方法可以使用现有的样式化组件类型?
这是我的代码。似乎是as=""属性给出了上面的错误。我认为这与我的组件只接受 prop 这样它就可以将它传递给 Styled Component 的事实有关,因为它是 Styled Components 的一个 feator。
import React from 'react'
import styled from 'styled-components'
type Props = {
additionalClass?: string,
as?: string
}
const Component: React.FC<Props> = (props) => {
return (
<StyledComponent as={props.as} className={props.additionalClass}>
{props.children}
</StyledComponent>
)
}
export default Component
const StyledComponent = styled.div`
...styles go here
`
Run Code Online (Sandbox Code Playgroud) 我已经看到关于使用 Axios 下载文件并将它们上传到 S3 的各种问题,但没有一个将它们联系在一起,我对流、blob、多部分表单等感到困惑。到目前为止,这是我的代码。
下载文件。
const downloadResponse = await axios({
url: `https://example.com/test.jpg`,
method: 'GET',
responseType: 'stream' // Should this be blob, stream or arraybuffer?
})
Run Code Online (Sandbox Code Playgroud)
目前不确定“downloadResponse.data”中包含什么,typeof 表明它是一个对象,而不是流
获取签名响应(这是通过 Storyblok CMS 而非 Amazon 完成的)
const signedResponse = await axios.post(`https://api.storyblok.com/v1/spaces/xxx/assets`, {
filename: 'test.jpg',
}, {
headers: {'Authorization': 'xxxxx'}
})
Run Code Online (Sandbox Code Playgroud)
使用 form-data 包创建表单数据
let form = new FormData()
for (var key in signedResponse.fields) {
form.append(key, signedResponse.fields[key])
}
try {
form.append('file', fs.createReadStream(downloadResponse.data))
} catch (error) {
console.log("Error Creating Data", error)
}
Run Code Online (Sandbox Code Playgroud)
上传至S3
try …Run Code Online (Sandbox Code Playgroud)