@ angular2,@ angular2-components,@ angular2-modules
为不同的功能创建 app模块 的子模块或 不同组件 会有什么更好的方法从设计和业务角度使用static void Main(string[] args)
{
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
try
{
var service = new SheetsService(new BaseClientService.Initializer()
{
HttpClientInitializer = GetCredential(),
ApplicationName = ApplicationName,
});
String spreadsheetId = "1lZnvQe6lTGG81hyuQvf7HjH8YpnIadFlNHjFUq_G-5Q";
String range = "E1";
SpreadsheetsResource.ValuesResource.GetRequest getRequest = service.Spreadsheets.Values.Get(spreadsheetId, range);
Data.ValueRange response = getRequest.Execute();
string recentMonth = DateTime.Now.ToString("MMM yyyy");
var recentMonthArrayValue = new List<string[]>();
recentMonthArrayValue.Add(new string[] { recentMonth });
if (response.Values[0][0].ToString() != recentMonth)
{
DateTime now = DateTime.Now;
var currentMonthStartDate = new DateTime(now.Year, now.Month, 1).ToShortDateString();
Data.BatchUpdateSpreadsheetRequest batchUpdateSpreadsheetRequest = new Data.BatchUpdateSpreadsheetRequest();
batchUpdateSpreadsheetRequest.Requests = new List<Data.Request>();
Data.Request request = new Data.Request();
batchUpdateSpreadsheetRequest.Requests.Add(request);
request.UpdateCells = new Data.UpdateCellsRequest();
var gridCoordinate = new Data.GridCoordinate();
gridCoordinate.ColumnIndex = 5;
gridCoordinate.SheetId = 0;
request.UpdateCells.Start = gridCoordinate;
request.UpdateCells.Fields = "*";
request.UpdateCells.Rows = new List<Data.RowData>();
var rowData = new Data.RowData();
request.UpdateCells.Rows.Add(rowData);
rowData.Values = new List<Data.CellData>();
var cellData = new Data.CellData();
cellData.UserEnteredValue = new Data.ExtendedValue();
cellData.UserEnteredValue.FormulaValue = "=TEXT(\"" + currentMonthStartDate + "\",\"MMM yyyy\")";
rowData.Values.Add(cellData);
SpreadsheetsResource.BatchUpdateRequest batchUpdateRequest = service.Spreadsheets.BatchUpdate(batchUpdateSpreadsheetRequest, spreadsheetId);
batchUpdateRequest.Execute();
}
}
catch (Exception e)
{
//throw;
}
}
public static UserCredential GetCredential()
{
UserCredential credential;
using (var stream =new FileStream("client_secret.json", FileMode.Open, FileAccess.Read))
{
string credPath = System.Environment.GetFolderPath(
System.Environment.SpecialFolder.Personal);
credPath = Path.Combine(credPath, ".credentials/sheets.googleapis.com-dotnet-quickstart.json");
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
Scopes,
"user",
CancellationToken.None,
new FileDataStore(credPath, true)).Result;
return credential;
}
}
的项目?
答案 0 :(得分:2)
ng模块只是包含组件,服务,管道,指令,提供者等的逻辑单元。
ng模块的主要好处是它们可以帮助您组织应用程序的逻辑结构 - 这种方式随着时间的推移更容易维护代码库等。
有不同类型的模块:
前段时间我giving a talk就此问题你可能会看一下code sample
另外,我建议您从最新的ngconf中观看此演讲https://www.youtube.com/watch?v=ntJ-P-Cvo7o,该演讲涵盖了ng模块的目的。
答案 1 :(得分:0)
取决于。如果您正在寻找构建自己的框架并在其他项目中使用它,最好创建一个功能模块(单独的模块)。例如,如果您有一个sidebar
组件,并且想要在另一个应用程序中使用该组件,请将其保存在单独的模块中。
实际上,模块包含组件。因此,如果AddComponent
,SubComponent
,MultiplyComponent
等都满足Math
这样的单个业务单位,则应考虑创建MathModule
。
如果您正在寻找构建单个模块应用程序,请继续执行没有严格的规则。但考虑一下Angular模块的一个很好的功能。也可以按需加载模块。因此,如果您正在寻找懒惰加载某些组件,则必须将它们包装在模块中。没有其他办法。